-type ('term, 'lazy_term, 'reduction, 'ident) tactic =
- (* Higher order tactics (i.e. tacticals) *)
- | Do of loc * int * ('term, 'lazy_term, 'reduction, 'ident) tactic
- | Repeat of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic
- | Seq of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic list
- (* sequential composition *)
- | Then of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic *
- ('term, 'lazy_term, 'reduction, 'ident) tactic list
- | First of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic list
- (* try a sequence of loc * tactic until one succeeds, fail otherwise *)
- | Try of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic
- (* try a tactic and mask failures *)
- | Solve of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic list
- | Progress of loc * ('term, 'lazy_term, 'reduction, 'ident) tactic
- (* Real tactics *)
- | Absurd of loc * 'term
- | Apply of loc * 'term
- | ApplyRule of loc * 'term
- | ApplyP of loc * 'term (* apply for procedural reconstruction *)
- | ApplyS of loc * 'term * 'term auto_params
- | Assumption of loc
- | AutoBatch of loc * 'term auto_params
- | Cases of loc * 'term * ('term, 'lazy_term, 'ident) pattern *
- 'ident intros_spec
- | Change of loc * ('term, 'lazy_term, 'ident) pattern * 'lazy_term
- | Clear of loc * 'ident list
- | ClearBody of loc * 'ident
- | Compose of loc * 'term * 'term option * int * 'ident intros_spec
- | Constructor of loc * int
- | Contradiction of loc
- | Cut of loc * 'ident option * 'term
- | Decompose of loc * 'ident option list
- | Demodulate of loc * 'term auto_params
- | Destruct of loc * 'term list option
- | Elim of loc * 'term * 'term option * ('term, 'lazy_term, 'ident) pattern *
- 'ident intros_spec
- | ElimType of loc * 'term * 'term option * 'ident intros_spec
- | Exact of loc * 'term
- | Exists of loc
- | Fail of loc
- | Fold of loc * 'reduction * 'lazy_term * ('term, 'lazy_term, 'ident) pattern
- | Fourier of loc
- | FwdSimpl of loc * string * 'ident option list
- | Generalize of loc * ('term, 'lazy_term, 'ident) pattern * 'ident option
- | IdTac of loc
- | Intros of loc * 'ident intros_spec
- | Inversion of loc * 'term
- | LApply of loc * bool * int option * 'term list * 'term * 'ident option
- | Left of loc
- | LetIn of loc * 'term * 'ident
- | Reduce of loc * 'reduction * ('term, 'lazy_term, 'ident) pattern
- | Reflexivity of loc
- | Replace of loc * ('term, 'lazy_term, 'ident) pattern * 'lazy_term
- | Rewrite of loc * direction * 'term *
- ('term, 'lazy_term, 'ident) pattern * 'ident option list
- | Right of loc
- | Ring of loc
- | Split of loc
- | Symmetry of loc
- | Transitivity of loc * 'term
- (* Declarative language *)
- | Assume of loc * 'ident * 'term
- | Suppose of loc * 'term *'ident * 'term option
- | By_just_we_proved of loc * 'term just *
- 'term * 'ident option * 'term option
- | We_need_to_prove of loc * 'term * 'ident option * 'term option
- | Bydone of loc * 'term just
- | We_proceed_by_induction_on of loc * 'term * 'term
- | We_proceed_by_cases_on of loc * 'term * 'term
- | Byinduction of loc * 'term * 'ident
- | Thesisbecomes of loc * 'term
- | Case of loc * string * (string * 'term) list
- | ExistsElim of loc * 'term just * 'ident * 'term * 'ident * 'lazy_term
- | AndElim of loc * 'term just * 'ident * 'term * 'ident * 'term
- | RewritingStep of
- loc * (string option * 'term) option * 'term *
- [ `Term of 'term | `Auto of 'term auto_params
- | `Proof | `SolveWith of 'term ] *
- bool (* last step*)
-
-type search_kind = [ `Locate | `Hint | `Match | `Elim ]
-
-type print_kind = [ `Env | `Coer ]
-
-type inline_param = IPPrefix of string (* undocumented *)
- | IPAs of Cic.object_flavour (* preferred flavour *)
- | IPCoercions (* show coercions *)
- | IPDebug of int (* set debug level *)
- | IPProcedural (* procedural rendering *)
- | IPNoDefaults (* no default-based tactics *)
- | IPLevel of int (* granularity level *)
- | IPDepth of int (* undocumented *)
- | IPComments (* show statistics *)
- | IPCR (* detect convertible rewriting *)
-
-type ('term,'lazy_term) macro =
- (* real macros *)
- | Eval of loc * 'lazy_term reduction * 'term
- | Check of loc * 'term
- | Hint of loc * bool
- | AutoInteractive of loc * 'term auto_params
- | Inline of loc * string * inline_param list
- (* URI or base-uri, parameters *)
-