Ltac2_plugin.Tac2typesRedefinition of Ltac1 data structures because of impedance mismatch
type 'a thunk = (unit, 'a) Tac2ffi.fun1type quantified_hypothesis = Tactypes.quantified_hypothesis = | AnonHyp of int |
| NamedHyp of Names.lident |
type explicit_bindings = (quantified_hypothesis * EConstr.t) listtype bindings = | ImplicitBindings of EConstr.t list |
| ExplicitBindings of explicit_bindings |
| NoBindings |
type constr_with_bindings = EConstr.constr * bindingstype core_destruction_arg = | ElimOnConstr of constr_with_bindings Proofview.tactic |
| ElimOnIdent of Names.Id.t |
| ElimOnAnonHyp of int |
type destruction_arg = core_destruction_argtype intro_pattern = | IntroForthcoming of bool |
| IntroNaming of intro_pattern_naming |
| IntroAction of intro_pattern_action |
and intro_pattern_naming = | IntroIdentifier of Names.Id.t |
| IntroFresh of Names.Id.t |
| IntroAnonymous |
and intro_pattern_action = | IntroWildcard |
| IntroOrAndPattern of or_and_intro_pattern |
| IntroInjection of intro_pattern list |
| IntroApplyOn of EConstr.t thunk * intro_pattern |
| IntroRewrite of bool |
and or_and_intro_pattern = | IntroOrPattern of intro_pattern list list |
| IntroAndPattern of intro_pattern list |
type hyp_location = Names.Id.t * occurrences * hyp_location_flagtype induction_clause = destruction_arg * intro_pattern_naming option * or_and_intro_pattern option * clause optiontype rewriting = orientation option * multi * constr_with_bindings Proofview.tactictype assertion = | AssertType of intro_pattern option * EConstr.constr * unit thunk option |
| AssertValue of Names.Id.t * EConstr.constr |