%======================================================================= % Listings LaTeX package style for Gallina + SSReflect (Assia Mahboubi 2007) \lstdefinelanguage{SSR} { % Anything betweeen $ becomes LaTeX math mode mathescape=true, % Comments may or not include Latex commands texcl=false, % Vernacular commands morekeywords=[1]{ From, Section, Module, End, Require, Import, Export, Defensive, Function, Variable, Variables, Parameter, Parameters, Axiom, Hypothesis, Hypotheses, Notation, Local, Tactic, Reserved, Scope, Open, Close, Bind, Delimit, Definition, Let, Ltac, Fixpoint, CoFixpoint, Add, Morphism, Relation, Implicit, Arguments, Set, Unset, Contextual, Strict, Prenex, Implicits, Inductive, CoInductive, Record, Structure, Canonical, Coercion, Theorem, Lemma, Corollary, Proposition, Fact, Remark, Example, Proof, Goal, Save, Qed, Defined, Hint, Resolve, Rewrite, View, Search, Show, Print, Printing, All, Graph, Projections, inside, outside, Locate, Maximal}, % Gallina morekeywords=[2]{forall, exists, exists2, fun, fix, cofix, struct, match, with, end, as, in, return, let, if, is, then, else, for, of, nosimpl}, % Sorts morekeywords=[3]{Type, Prop}, % Various tactics, some are std Coq subsumed by ssr, for the manual purpose morekeywords=[4]{ pose, set, move, case, elim, apply, clear, hnf, intro, intros, generalize, rename, pattern, after, destruct, induction, using, refine, inversion, injection, rewrite, congr, unlock, compute, ring, field, replace, fold, unfold, change, cutrewrite, simpl, have, gen, generally, suff, wlog, suffices, without, loss, nat_norm, assert, cut, trivial, revert, bool_congr, nat_congr, abstract, symmetry, transitivity, auto, split, left, right, autorewrite}, % Terminators morekeywords=[5]{ by, done, exact, reflexivity, tauto, romega, omega, assumption, solve, contradiction, discriminate}, % Control morekeywords=[6]{do, last, first, try, idtac, repeat}, % Various symbols % For the ssr manual we turn off the prettyprint of formulas % literate= % {->}{{$\rightarrow\,$}}2 % {->}{{\tt ->}}3 % {<-}{{$\leftarrow\,$}}2 % {<-}{{\tt <-}}2 % {>->}{{$\mapsto$}}3 % {<=}{{$\leq$}}1 % {>=}{{$\geq$}}1 % {<>}{{$\neq$}}1 % {/\\}{{$\wedge$}}2 % {\\/}{{$\vee$}}2 % {<->}{{$\leftrightarrow\;$}}3 % {<=>}{{$\Leftrightarrow\;$}}3 % {:nat}{{$~\in\mathbb{N}$}}3 % {fforall\ }{{$\forall_f\,$}}1 % {forall\ }{{$\forall\,$}}1 % {exists\ }{{$\exists\,$}}1 % {negb}{{$\neg$}}1 % {spp}{{:*:\,}}1 % {~}{{$\sim$}}1 % {\\in}{{$\in\;$}}1 % {/\\}{$\land\,$}1 % {:*:}{{$*$}}2 % {=>}{{$\,\Rightarrow\ $}}1 % {=>}{{\tt =>}}2 % {:=}{{{\tt:=}\,\,}}2 % {==}{{$\equiv$}\,}2 % {!=}{{$\neq$}\,}2 % {^-1}{{$^{-1}$}}1 % {elt'}{elt'}1 % {=}{{\tt=}\,\,}2 % {+}{{\tt+}\,\,}2, literate= {isn't }{{{\ttfamily\color{dkgreen} isn't }}}1, % Comments delimiters, we do turn this off for the manual %comment=[s]{(*}{*)}, % Spaces are not displayed as a special character showstringspaces=false, % String delimiters morestring=[b]", morestring=[d]", % Size of tabulations tabsize=3, % Enables ASCII chars 128 to 255 extendedchars=true, % Case sensitivity sensitive=true, % Automatic breaking of long lines breaklines=true, % Default style fors listings 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{dkviolet}}, % Style for gallina keywords keywordstyle=[2]{\ttfamily\color{dkgreen}}, % Style for sorts keywords keywordstyle=[3]{\ttfamily\color{lightblue}}, % Style for tactics keywords keywordstyle=[4]{\ttfamily\color{dkblue}}, % Style for terminators keywords keywordstyle=[5]{\ttfamily\color{red}}, %Style for iterators keywordstyle=[6]{\ttfamily\color{dkpink}}, % Style for strings stringstyle=\ttfamily, % Style for comments commentstyle=\rmfamily, }