273 lines
7.9 KiB
TeX
273 lines
7.9 KiB
TeX
|
% Listing style definition for the Lean Theorem Prover.
|
|||
|
% Defined by Jeremy Avigad, 2015, by modifying Assia Mahboubi's SSR style.
|
|||
|
% Unicode replacements taken from Olivier Verdier's unixode.sty
|
|||
|
|
|||
|
\lstdefinelanguage{lean} {
|
|||
|
|
|||
|
% Anything betweeen $ becomes LaTeX math mode
|
|||
|
mathescape=true,
|
|||
|
% Comments may or not include Latex commands
|
|||
|
texcl=false,
|
|||
|
|
|||
|
% keywords
|
|||
|
morekeywords=[1]{
|
|||
|
import, prelude, tactic_hint, protected, private, definition, renaming,
|
|||
|
hiding, exposing, parameter, parameters, begin, begin+, proof, qed, conjecture, constant, constants,
|
|||
|
hypothesis, lemma, corollary, variable, variables, premise, premises,
|
|||
|
print, theorem, example, abbreviation,
|
|||
|
open, as, export, axiom, axioms, inductive, with, structure, record, universe, universes,
|
|||
|
alias, help, environment, options, precedence, reserve,
|
|||
|
match, infix, infixl, infixr, notation, postfix, prefix,
|
|||
|
tactic_infix, tactic_infixl, tactic_infixr, tactic_notation, tactic_postfix, tactic_prefix,
|
|||
|
eval, check, coercion, end, reveal,
|
|||
|
using, namespace, section, fields, find_decl,
|
|||
|
attribute, local, set_option, add_rewrite, extends, include, omit, classes,
|
|||
|
instances, coercions, metaclasses, raw, migrate, replacing,
|
|||
|
calc, have, obtains, show, by, by+, in, at, let, forall, fun,
|
|||
|
exists, if, dif, then, else, assume, assert, take, obtain, from
|
|||
|
},
|
|||
|
|
|||
|
% Sorts
|
|||
|
morekeywords=[2]{Type, Prop},
|
|||
|
|
|||
|
% tactics
|
|||
|
morekeywords=[3]{
|
|||
|
Cond, or_else, then, try, when, assumption, eassumption, rapply,
|
|||
|
apply, fapply, eapply, rename, intro, intros, all_goals, fold,
|
|||
|
generalize, generalizes, clear, clears, revert, reverts, back, beta, done, exact, rexact,
|
|||
|
refine, repeat, whnf, rotate, rotate_left, rotate_right, inversion, cases, rewrite, esimp,
|
|||
|
unfold, change, check_expr, contradiction, exfalso, split, existsi, constructor, left, right,
|
|||
|
injection, congruence, reflexivity, symmetry, transitivity, state, induction, induction_using
|
|||
|
},
|
|||
|
|
|||
|
% attributes
|
|||
|
morekeywords=[4]{
|
|||
|
\[persistent\], \[notation\], \[visible\], \[instance\], \[class\], \[parsing-only\],
|
|||
|
\[coercion\], \[unfold-f\], \[constructor\], \[reducible\],
|
|||
|
\[irreducible\], \[semireducible\], \[quasireducible\], \[wf\],
|
|||
|
\[whnf\], \[multiple-instances\], \[none\],
|
|||
|
\[decls\], \[declarations\], \[coercions\], \[classes\],
|
|||
|
\[symm\], \[subst\], \[refl\], \[trans\], \[recursor\],
|
|||
|
\[notations\], \[abbreviations\], \[begin-end-hints\], \[tactic-hints\],
|
|||
|
\[reduce-hints\], \[unfold-hints\], \[aliases\], \[eqv\], \[localrefinfo\]
|
|||
|
},
|
|||
|
|
|||
|
% Various symbols
|
|||
|
literate=
|
|||
|
{α}{{\ensuremath{\mathrm{\alpha}}}}1
|
|||
|
{β}{{\ensuremath{\mathrm{\beta}}}}1
|
|||
|
{γ}{{\ensuremath{\mathrm{\gamma}}}}1
|
|||
|
{δ}{{\ensuremath{\mathrm{\delta}}}}1
|
|||
|
{ε}{{\ensuremath{\mathrm{\varepsilon}}}}1
|
|||
|
{ζ}{{\ensuremath{\mathrm{\zeta}}}}1
|
|||
|
{η}{{\ensuremath{\mathrm{\eta}}}}1
|
|||
|
{θ}{{\ensuremath{\mathrm{\theta}}}}1
|
|||
|
{ι}{{\ensuremath{\mathrm{\iota}}}}1
|
|||
|
{κ}{{\ensuremath{\mathrm{\kappa}}}}1
|
|||
|
{μ}{{\ensuremath{\mathrm{\mu}}}}1
|
|||
|
{ν}{{\ensuremath{\mathrm{\nu}}}}1
|
|||
|
{ξ}{{\ensuremath{\mathrm{\xi}}}}1
|
|||
|
{π}{{\ensuremath{\mathrm{\mathnormal{\pi}}}}}1
|
|||
|
{ρ}{{\ensuremath{\mathrm{\rho}}}}1
|
|||
|
{σ}{{\ensuremath{\mathrm{\sigma}}}}1
|
|||
|
{τ}{{\ensuremath{\mathrm{\tau}}}}1
|
|||
|
{φ}{{\ensuremath{\mathrm{\varphi}}}}1
|
|||
|
{χ}{{\ensuremath{\mathrm{\chi}}}}1
|
|||
|
{ψ}{{\ensuremath{\mathrm{\psi}}}}1
|
|||
|
{ω}{{\ensuremath{\mathrm{\omega}}}}1
|
|||
|
|
|||
|
{Γ}{{\ensuremath{\mathrm{\Gamma}}}}1
|
|||
|
{Δ}{{\ensuremath{\mathrm{\Delta}}}}1
|
|||
|
{Θ}{{\ensuremath{\mathrm{\Theta}}}}1
|
|||
|
{Λ}{{\ensuremath{\mathrm{\Lambda}}}}1
|
|||
|
{Σ}{{\ensuremath{\mathrm{\Sigma}}}}1
|
|||
|
{Φ}{{\ensuremath{\mathrm{\Phi}}}}1
|
|||
|
{Ξ}{{\ensuremath{\mathrm{\Xi}}}}1
|
|||
|
{Ψ}{{\ensuremath{\mathrm{\Psi}}}}1
|
|||
|
{Ω}{{\ensuremath{\mathrm{\Omega}}}}1
|
|||
|
|
|||
|
{ℵ}{{\ensuremath{\aleph}}}1
|
|||
|
|
|||
|
{≤}{{\ensuremath{\leq}}}1
|
|||
|
{≥}{{\ensuremath{\geq}}}1
|
|||
|
{≠}{{\ensuremath{\neq}}}1
|
|||
|
{≈}{{\ensuremath{\approx}}}1
|
|||
|
{≡}{{\ensuremath{\equiv}}}1
|
|||
|
{≃}{{\ensuremath{\simeq}}}1
|
|||
|
|
|||
|
{≤}{{\ensuremath{\leq}}}1
|
|||
|
{≥}{{\ensuremath{\geq}}}1
|
|||
|
|
|||
|
{∂}{{\ensuremath{\partial}}}1
|
|||
|
{∆}{{\ensuremath{\triangle}}}1 % or \laplace?
|
|||
|
|
|||
|
{∫}{{\ensuremath{\int}}}1
|
|||
|
{∑}{{\ensuremath{\mathrm{\Sigma}}}}1
|
|||
|
{Π}{{\ensuremath{\mathrm{\Pi}}}}1
|
|||
|
|
|||
|
{⊥}{{\ensuremath{\perp}}}1
|
|||
|
{∞}{{\ensuremath{\infty}}}1
|
|||
|
{∂}{{\ensuremath{\partial}}}1
|
|||
|
|
|||
|
{∓}{{\ensuremath{\mp}}}1
|
|||
|
{±}{{\ensuremath{\pm}}}1
|
|||
|
{×}{{\ensuremath{\times}}}1
|
|||
|
|
|||
|
{⊕}{{\ensuremath{\oplus}}}1
|
|||
|
{⊗}{{\ensuremath{\otimes}}}1
|
|||
|
{⊞}{{\ensuremath{\boxplus}}}1
|
|||
|
|
|||
|
{∇}{{\ensuremath{\nabla}}}1
|
|||
|
{√}{{\ensuremath{\sqrt}}}1
|
|||
|
|
|||
|
{⬝}{{\ensuremath{\cdot}}}1
|
|||
|
{•}{{\ensuremath{\cdot}}}1
|
|||
|
{∘}{{\ensuremath{\circ}}}1
|
|||
|
|
|||
|
%{⁻}{{\ensuremath{^{\textup{\kern1pt\rule{2pt}{0.3pt}\kern-1pt}}}}}1
|
|||
|
{⁻}{{\ensuremath{^{-}}}}1
|
|||
|
{▸}{{\ensuremath{\blacktriangleright}}}1
|
|||
|
|
|||
|
{∧}{{\ensuremath{\wedge}}}1
|
|||
|
{∨}{{\ensuremath{\vee}}}1
|
|||
|
{¬}{{\ensuremath{\neg}}}1
|
|||
|
{⊢}{{\ensuremath{\vdash}}}1
|
|||
|
|
|||
|
%{⟨}{{\ensuremath{\left\langle}}}1
|
|||
|
%{⟩}{{\ensuremath{\right\rangle}}}1
|
|||
|
{⟨}{{\ensuremath{\langle}}}1
|
|||
|
{⟩}{{\ensuremath{\rangle}}}1
|
|||
|
|
|||
|
{↦}{{\ensuremath{\mapsto}}}1
|
|||
|
{→}{{\ensuremath{\rightarrow}}}1
|
|||
|
{↔}{{\ensuremath{\leftrightarrow}}}1
|
|||
|
{⇒}{{\ensuremath{\Rightarrow}}}1
|
|||
|
{⟹}{{\ensuremath{\Longrightarrow}}}1
|
|||
|
{⇐}{{\ensuremath{\Leftarrow}}}1
|
|||
|
{⟸}{{\ensuremath{\Longleftarrow}}}1
|
|||
|
|
|||
|
{∩}{{\ensuremath{\cap}}}1
|
|||
|
{∪}{{\ensuremath{\cup}}}1
|
|||
|
{⊂}{{\ensuremath{\subseteq}}}1
|
|||
|
{⊆}{{\ensuremath{\subseteq}}}1
|
|||
|
{⊄}{{\ensuremath{\nsubseteq}}}1
|
|||
|
{⊈}{{\ensuremath{\nsubseteq}}}1
|
|||
|
{⊃}{{\ensuremath{\supseteq}}}1
|
|||
|
{⊇}{{\ensuremath{\supseteq}}}1
|
|||
|
{⊅}{{\ensuremath{\nsupseteq}}}1
|
|||
|
{⊉}{{\ensuremath{\nsupseteq}}}1
|
|||
|
{∈}{{\ensuremath{\in}}}1
|
|||
|
{∉}{{\ensuremath{\notin}}}1
|
|||
|
{∋}{{\ensuremath{\ni}}}1
|
|||
|
{∌}{{\ensuremath{\notni}}}1
|
|||
|
{∅}{{\ensuremath{\emptyset}}}1
|
|||
|
|
|||
|
{∖}{{\ensuremath{\setminus}}}1
|
|||
|
{†}{{\ensuremath{\dag}}}1
|
|||
|
|
|||
|
{ℕ}{{\ensuremath{\mathbb{N}}}}1
|
|||
|
{ℤ}{{\ensuremath{\mathbb{Z}}}}1
|
|||
|
{ℝ}{{\ensuremath{\mathbb{R}}}}1
|
|||
|
{ℚ}{{\ensuremath{\mathbb{Q}}}}1
|
|||
|
{ℂ}{{\ensuremath{\mathbb{C}}}}1
|
|||
|
{⌞}{{\ensuremath{\llcorner}}}1
|
|||
|
{⌟}{{\ensuremath{\lrcorner}}}1
|
|||
|
{⦃}{{\ensuremath{\{\!|}}}1
|
|||
|
{⦄}{{\ensuremath{|\!\}}}}1
|
|||
|
|
|||
|
{₁}{{\ensuremath{_1}}}1
|
|||
|
{₂}{{\ensuremath{_2}}}1
|
|||
|
{₃}{{\ensuremath{_3}}}1
|
|||
|
{₄}{{\ensuremath{_4}}}1
|
|||
|
{₅}{{\ensuremath{_5}}}1
|
|||
|
{₆}{{\ensuremath{_6}}}1
|
|||
|
{₇}{{\ensuremath{_7}}}1
|
|||
|
{₈}{{\ensuremath{_8}}}1
|
|||
|
{₉}{{\ensuremath{_9}}}1
|
|||
|
{₀}{{\ensuremath{_0}}}1
|
|||
|
|
|||
|
{¹}{{\ensuremath{^1}}}1
|
|||
|
|
|||
|
{ₙ}{{\ensuremath{_n}}}1
|
|||
|
{ₘ}{{\ensuremath{_m}}}1
|
|||
|
{↑}{{\ensuremath{\uparrow}}}1
|
|||
|
{↓}{{\ensuremath{\downarrow}}}1
|
|||
|
|
|||
|
{▸}{{\ensuremath{\triangleright}}}1
|
|||
|
|
|||
|
{Σ}{{\color{symbolcolor}\ensuremath{\Sigma}}}1
|
|||
|
{Π}{{\color{symbolcolor}\ensuremath{\Pi}}}1
|
|||
|
{∀}{{\color{symbolcolor}\ensuremath{\forall}}}1
|
|||
|
{∃}{{\color{symbolcolor}\ensuremath{\exists}}}1
|
|||
|
{λ}{{\color{symbolcolor}\ensuremath{\mathrm{\lambda}}}}1
|
|||
|
|
|||
|
{:=}{{\color{symbolcolor}:=}}1
|
|||
|
{=}{{\color{symbolcolor}=}}1
|
|||
|
{<}{{\color{symbolcolor}<}}1
|
|||
|
{+}{{\color{symbolcolor}+}}1
|
|||
|
{*}{{\color{symbolcolor}*}}1,
|
|||
|
|
|||
|
% Comments
|
|||
|
%comment=[s][\itshape \color{commentcolor}]{/-}{-/},
|
|||
|
morecomment=[s][\color{commentcolor}]{/-}{-/},
|
|||
|
morecomment=[l][\itshape \color{commentcolor}]{--},
|
|||
|
|
|||
|
% Spaces are not displayed as a special character
|
|||
|
showstringspaces=false,
|
|||
|
|
|||
|
% keep spaces
|
|||
|
keepspaces=true,
|
|||
|
|
|||
|
% String delimiters
|
|||
|
morestring=[b]",
|
|||
|
morestring=[d],
|
|||
|
|
|||
|
% Size of tabulations
|
|||
|
tabsize=3,
|
|||
|
|
|||
|
% Enables ASCII chars 128 to 255
|
|||
|
extendedchars=false,
|
|||
|
|
|||
|
% Case sensitivity
|
|||
|
sensitive=true,
|
|||
|
|
|||
|
% Automatic breaking of long lines
|
|||
|
breaklines=true,
|
|||
|
|
|||
|
% Default style fors listingsred
|
|||
|
basicstyle=\ttfamily,
|
|||
|
|
|||
|
% Position of captions is bottom
|
|||
|
captionpos=b,
|
|||
|
|
|||
|
% Full flexible columns
|
|||
|
columns=[l]fullflexible,
|
|||
|
|
|||
|
|
|||
|
% Style for (listings') identifiers
|
|||
|
identifierstyle={\ttfamily\color{black}},
|
|||
|
% Note : highlighting of Coq identifiers is done through a new
|
|||
|
% delimiter definition through an lstset at the begining of the
|
|||
|
% document. Don't know how to do better.
|
|||
|
|
|||
|
% Style for declaration keywords
|
|||
|
keywordstyle=[1]{\ttfamily\color{keywordcolor}},
|
|||
|
|
|||
|
% Style for sorts
|
|||
|
keywordstyle=[2]{\ttfamily\color{sortcolor}},
|
|||
|
|
|||
|
% Style for tactics keywords
|
|||
|
keywordstyle=[3]{\ttfamily\color{tacticcolor}},
|
|||
|
|
|||
|
% Style for attributes
|
|||
|
keywordstyle=[4]{\ttfamily\color{attributecolor}},
|
|||
|
|
|||
|
% Style for strings
|
|||
|
stringstyle=\ttfamily,
|
|||
|
|
|||
|
% Style for comments
|
|||
|
% commentstyle={\ttfamily\footnotesize },
|
|||
|
|
|||
|
}
|
|||
|
|