\lst@definelanguage{ProVerif} {
%
keywords={%
  among, axiom, choice, diff, clauses, const, def, do, elimtrue, else,
  equation, equivalence, event, expand, fail, for, forall, foreach, free, fun, get,
  if, implementation, in, inj-event, insert, lemma, let, letfun, new, noninterf, noselect, not, nounif,
  or, otherwise, out, param, phase, pred, proba, process, proof,
  public_vars, putbegin, query, reduc, restriction, secret, select, set, suchthat, sync, table, then, type,
  weaksecret, yield, attacker, mess,
inj,
typeConverter,
data,
private,
block, memberOptim,
noneSat, discardSat, instantiateSat, fullSat, maxSubset, proveAll,
removeEvents, keepEvents,
noneVerif, discardVerif, instantiateVerif, fullVerif,
conclusion, hypothesis, inductionOn, ignoreAFewTimes, induction, noInduction, precise, keep, subterm
},
comment=[s]{(*}{*)},
%literate=
%    {t_1}{{$t_{1}$}}0
%    {t_n}{{$t_n$}}0
%    {_1_1}{{${}_{1,1}$}}3
%    {_m_1}{{${}_{m,1}$}}3
%    {_1_n1}{{${}_{1,n_1}$}}3
%    {_m_nm}{{${}_{1,n_m}$}}3
}

\lst@definelanguage{nokeyword} {
%
keywords={},
comment=[s]{(*}{*)}
}
