Module Ssreflect_plugin.Ssrast
type ssrhyp=|SsrHyp of Names.Id.t Loc.locatedtype ssrhyp_or_id=|Hyp of ssrhyp|Id of ssrhyptype ssrhyps= ssrhyp listtype ssrdir= Ssrmatching_plugin.Ssrmatching.ssrdir=|L2R|R2Ltype ssrsimpl=|Simpl of int|Cut of int|SimplCut of int * int|Noptype ssrmmod=|May|Must|Oncetype ssrmult= int * ssrmmodtype ssrocc= (bool * int list) optionOccurrence switch
2
, all is Some(false,
)
type ssrindex= int Locus.or_vartype ssrclear= ssrhypstype ssrdocc= ssrclear option * ssrocctype ssrtermkind= Ssrmatching_plugin.Ssrmatching.ssrtermkindtype ssrterm= ssrtermkind * Genintern.glob_constr_and_exprtype ast_glob_env={ast_ltacvars : Names.Id.Set.t;ast_extra : Genintern.Store.t;ast_intern_sign : Genintern.intern_variable_status;}type ast_closure_term={body : Constrexpr.constr_expr;glob_env : ast_glob_env option;interp_env : Geninterp.interp_sign option;annotation : [ `None | `Parens | `DoubleParens | `At ];}type ssrview= ast_closure_term listtype id_block=|Prefix of Names.Id.t|SuffixId of Names.Id.t|SuffixNum of inttype anon_kind=|One of string option|Drop|All|Temporarytype ssripat=|IPatNoop|IPatId of Names.Id.t|IPatAnon of anon_kind|IPatDispatch of ssripatss_or_block|IPatCase of ssripatss_or_block|IPatInj of ssripatss|IPatRewrite of ssrocc * ssrdir|IPatView of ssrview|IPatClear of ssrclear|IPatSimpl of ssrsimpl|IPatAbstractVars of Names.Id.t list|IPatFastNondepand ssripats= ssripat listand ssripatss= ssripats listand ssripatss_or_block=|Block of id_block|Regular of ssripats listtype ssrhpats= ((ssrclear option * ssripats) * ssripats) * ssripatstype ssrhpats_wtransp= bool * ssrhpatstype ssrintrosarg= Ltac_plugin.Tacexpr.raw_tactic_expr * ssripatstype ssrfwdid= Names.Id.ttype 'term ssrbind=|Bvar of Names.Name.t|Bdecl of Names.Name.t list * 'term|Bdef of Names.Name.t * 'term option * 'term|Bstruct of Names.Name.t|Bcast of 'termBinders (for fwd tactics)
type ssrbindfmt=|BFvar|BFdecl of int|BFcast|BFdef|BFrec of bool * booltype 'term ssrbindval= 'term ssrbind list * 'termtype ssrfwdkind=|FwdHint of string * bool|FwdHave|FwdPoseForward chaining argument
type ssrfwdfmt= ssrfwdkind * ssrbindfmt listtype ssrclseq=|InGoal|InHyps|InHypsGoal|InHypsSeqGoal|InSeqGoal|InHypsSeq|InAll|InAllHypstype 'tac ssrhint= bool * 'tac option listtype 'tac fwdbinders= bool * (ssrhpats * ((ssrfwdfmt * ast_closure_term) * 'tac ssrhint))type 'tac ffwbinders= ssrhpats * ((ssrfwdfmt * ast_closure_term) * 'tac ssrhint)type clause= ssrclear * ((ssrhyp_or_id * string) * Ssrmatching_plugin.Ssrmatching.cpattern option) optiontype clauses= clause list * ssrclseqtype wgen= ssrclear * ((ssrhyp_or_id * string) * Ssrmatching_plugin.Ssrmatching.cpattern option) optiontype 'a ssrdoarg= ((ssrindex * ssrmmod) * 'a ssrhint) * clausestype 'a ssrseqarg= ssrindex * ('a ssrhint * 'a option)
type 'a ssrcasearg= ssripat option * ('a * ssripats)type 'a ssrmovearg= ssrview * 'a ssrcaseargtype ssrdgens={dgens : (ssrdocc * Ssrmatching_plugin.Ssrmatching.cpattern) list;gens : (ssrdocc * Ssrmatching_plugin.Ssrmatching.cpattern) list;clr : ssrclear;}type 'a ssragens= (ssrdocc * 'a) list list * ssrcleartype ssrapplyarg= ssrterm list * (ssrterm ssragens * ssripats)type gist= Ltac_plugin.Tacintern.glob_signtype ist= Ltac_plugin.Tacinterp.interp_signtype goal= Goal.goaltype 'a sigma= 'a Evd.sigmatype v82tac= Tacmach.tactic