\lstdefinelanguage[ACSL]{C}[ANSI]{C}% {morekeywords={requires,ensures,assigns,loop,invariant,variant, terminates,decreases, behavior,assumes,complete,disjoint,behaviors, \nothing,\result,\at,\valid, \max,\numof,\sum,\lambda, \null,\base_addr,\block_length,\offset,\allocation, \allocable,\freeable,\fresh,\valid,\valid_read,\separated, bool, boolean, integer, real, size_type, value_type, then, skip, logic,axiom,axiomatic,predicate,inductive,lemma},% % otherkeywords={/*@,*/}, % otherkeywords={->},% TeX capacity exceeded, sorry [grouping levels=255]. deletecomment=[s]{/*}{*/},% deletecomment=[l]//,% nonstandard comment=[l]/// ,% to avoid matching //@ % morecomment=[s]{/* }{*/},% literate=% {\\langle}{\ensuremath{\langle}}1% {\\rangle}{\ensuremath{\rangle}}1% {->}{\ensuremath{\rightarrow}~}2% {==}{\ensuremath{\equiv}~}{2}% {!=}{\ensuremath{\neq}~}{2}% {<=}{\ensuremath{\leq}~}{2}% {>=}{\ensuremath{\geq}~}{1}% {&&}{\ensuremath{\ \wedge\ }}{2}% {||}{\ensuremath{\ \vee\ }}{2}% {==>}{\ensuremath{\ \Rightarrow\ }}{3}% {<==>}{\ensuremath{\ \Leftrightarrow\ }}{4}% %{\\nothing}{$\emptyset$}{1}% {\\forall}{\ensuremath{\forall\ }}{2}% {\\exists}{\ensuremath{\exists\ }}{2},% %{\\lambda}{\ensuremath{\mathbf{\lambda}\ }}{2},% }[keywords,strings,directives]% \def\lstShowTarget{\gdef\lsttarget##1{\textsf{##1}:}}