(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* goal list sigma type prim_rule = | Intro of identifier | Cut of bool * bool * identifier * types | FixRule of identifier * int * (identifier * int * constr) list * int | Cofix of identifier * (identifier * constr) list * int | Refine of constr | Convert_concl of types * cast_kind | Convert_hyp of named_declaration | Thin of identifier list | ThinBody of identifier list | Move of bool * identifier * identifier move_location | Order of identifier list | Rename of identifier * identifier | Change_evars (** Nowadays, the only rules we'll consider are the primitive rules *) type rule = prim_rule type tactic_expr = (constr, constr_pattern, evaluable_global_reference, inductive, ltac_constant, identifier, glob_tactic_expr, tlevel) Tacexpr.gen_tactic_expr and atomic_tactic_expr = (constr, constr_pattern, evaluable_global_reference, inductive, ltac_constant, identifier, glob_tactic_expr, tlevel) Tacexpr.gen_atomic_tactic_expr and tactic_arg = (constr, constr_pattern, evaluable_global_reference, inductive, ltac_constant, identifier, glob_tactic_expr, tlevel) Tacexpr.gen_tactic_arg (** Ltac traces *) type ltac_call_kind = | LtacNotationCall of string | LtacNameCall of ltac_constant | LtacAtomCall of glob_atomic_tactic_expr | LtacVarCall of identifier * glob_tactic_expr | LtacConstrInterp of glob_constr * (extended_patvar_map * (identifier * identifier option) list) type ltac_trace = (int * Loc.t * ltac_call_kind) list exception LtacLocated of (int * ltac_call_kind * ltac_trace * Loc.t) * exn