2015-05-17 10:13:57 +00:00
|
|
|
|
% 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
|
2016-02-12 17:03:06 +00:00
|
|
|
|
mathescape=true,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
% Comments may or not include Latex commands
|
|
|
|
|
texcl=false,
|
|
|
|
|
|
2015-12-21 20:54:00 +00:00
|
|
|
|
% keywords, list taken from lean-syntax.el
|
2015-05-17 10:13:57 +00:00
|
|
|
|
morekeywords=[1]{
|
2015-12-21 20:54:00 +00:00
|
|
|
|
import, prelude, tactic_hint, protected, private, noncomputable, definition, renaming,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
hiding, exposing, parameter, parameters, begin, begin+, proof, qed, conjecture, constant, constants,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
hypothesis, lemma, corollary, variable, variables, premise, premises, theory,
|
|
|
|
|
print, theorem, proposition, example, abbreviation, abstract,
|
|
|
|
|
open, as, export, override, axiom, axioms, inductive, with, structure, record, universe, universes,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
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,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
eval, check, coercion, end, reveal, this, suppose,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
using, namespace, section, fields, find_decl,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
attribute, local, set_option, extends, include, omit, classes,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
instances, coercions, metaclasses, raw, migrate, replacing,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
calc, have, obtains, show, suffices, by, by+, in, at, let, forall, Pi, fun,
|
2016-02-12 17:03:06 +00:00
|
|
|
|
exists, if, dif, then, else, assume, assert, take,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
obtain, from, aliases
|
2015-05-17 10:13:57 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
% Sorts
|
|
|
|
|
morekeywords=[2]{Type, Prop},
|
|
|
|
|
|
2015-12-21 20:54:00 +00:00
|
|
|
|
% tactics, list taken from lean-syntax.el
|
2015-05-17 10:13:57 +00:00
|
|
|
|
morekeywords=[3]{
|
|
|
|
|
Cond, or_else, then, try, when, assumption, eassumption, rapply,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
apply, fapply, eapply, rename, intro, intros, all_goals, fold, focus, focus_at,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
generalize, generalizes, clear, clears, revert, reverts, back, beta, done, exact, rexact,
|
2016-02-12 17:03:06 +00:00
|
|
|
|
refine, repeat, whnf, rotate, rotate_left, rotate_right, inversion, cases, rewrite,
|
|
|
|
|
xrewrite, krewrite, blast, simp, esimp, unfold, change, check_expr, contradiction,
|
|
|
|
|
exfalso, split, existsi, constructor, fconstructor, left, right, injection, congruence, reflexivity,
|
|
|
|
|
symmetry, transitivity, state, induction, induction_using, fail, append,
|
2015-12-21 20:54:00 +00:00
|
|
|
|
substvars, now, with_options, with_attributes, with_attrs, note
|
2015-05-17 10:13:57 +00:00
|
|
|
|
},
|
|
|
|
|
|
2016-02-12 17:03:06 +00:00
|
|
|
|
% modifiers, taken from lean-syntax.el
|
2015-05-24 11:39:17 +00:00
|
|
|
|
% note: 'otherkeywords' is needed because these use a different symbol.
|
|
|
|
|
% this command doesn't allow us to specify a number -- they are put with [1]
|
|
|
|
|
otherkeywords={
|
2015-12-21 20:54:00 +00:00
|
|
|
|
[persistent], [notation], [visible], [instance], [trans_instance],
|
2016-02-12 17:03:06 +00:00
|
|
|
|
[class], [parsing-only], [coercion], [unfold_full], [constructor],
|
2015-12-21 20:54:00 +00:00
|
|
|
|
[reducible], [irreducible], [semireducible], [quasireducible], [wf],
|
2016-02-12 17:03:06 +00:00
|
|
|
|
[whnf], [multiple_instances], [none], [decl], [declaration],
|
|
|
|
|
[relation], [symm], [subst], [refl], [trans], [simp], [congr], [unify],
|
2015-12-31 22:12:37 +00:00
|
|
|
|
[backward], [forward], [no_pattern], [begin_end], [tactic], [abbreviation],
|
|
|
|
|
[reducible], [unfold], [alias], [eqv], [intro], [intro!], [elim], [grinder],
|
|
|
|
|
[localrefinfo], [recursor]
|
2015-05-17 10:13:57 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
% 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
|
2016-02-12 17:03:06 +00:00
|
|
|
|
tabsize=3,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
|
|
|
|
|
% Enables ASCII chars 128 to 255
|
|
|
|
|
extendedchars=false,
|
|
|
|
|
|
|
|
|
|
% Case sensitivity
|
2016-02-12 17:03:06 +00:00
|
|
|
|
sensitive=true,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
|
|
|
|
|
% Automatic breaking of long lines
|
|
|
|
|
breaklines=true,
|
|
|
|
|
|
|
|
|
|
% Default style fors listingsred
|
|
|
|
|
basicstyle=\ttfamily,
|
|
|
|
|
|
|
|
|
|
% Position of captions is bottom
|
2016-02-12 17:03:06 +00:00
|
|
|
|
captionpos=b,
|
2015-05-17 10:13:57 +00:00
|
|
|
|
|
2016-02-12 17:03:06 +00:00
|
|
|
|
% Full flexible columns
|
2015-05-17 10:13:57 +00:00
|
|
|
|
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}},
|
|
|
|
|
|
2016-02-12 17:03:06 +00:00
|
|
|
|
% Style for sorts
|
2015-05-17 10:13:57 +00:00
|
|
|
|
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 },
|
|
|
|
|
|
|
|
|
|
}
|