aboutsummaryrefslogtreecommitdiffhomepage
path: root/proofs
diff options
context:
space:
mode:
Diffstat (limited to 'proofs')
-rw-r--r--proofs/tacexpr.ml21
1 files changed, 18 insertions, 3 deletions
diff --git a/proofs/tacexpr.ml b/proofs/tacexpr.ml
index c6453f076..4435d57ab 100644
--- a/proofs/tacexpr.ml
+++ b/proofs/tacexpr.ml
@@ -60,12 +60,24 @@ type 'a induction_arg =
| ElimOnAnonHyp of int
type intro_pattern_expr =
- | IntroOrAndPattern of intro_pattern_expr list list
+ | IntroOrAndPattern of case_intro_pattern_expr
| IntroWildcard
| IntroIdentifier of identifier
+and case_intro_pattern_expr = intro_pattern_expr list list
+
type 'id clause_pattern = int list option * ('id * int list) list
+type inversion_kind =
+ | SimpleInversion
+ | FullInversion
+ | FullInversionClear
+
+type ('c,'id) inversion_strength =
+ | NonDepInversion of inversion_kind * 'id list * case_intro_pattern_expr
+ | DepInversion of inversion_kind * 'c option * case_intro_pattern_expr
+ | InversionUsing of 'c * 'id list
+
type ('a,'b) location = HypLocation of 'a | ConclLocation of 'b
type pattern_expr = constr_expr
@@ -111,10 +123,10 @@ type ('constr,'pat,'cst,'ind,'ref,'id,'tac) gen_atomic_tactic_expr =
(* Derived basic tactics *)
| TacSimpleInduction of quantified_hypothesis
| TacNewInduction of 'constr induction_arg * 'constr with_bindings option
- * intro_pattern_expr list list
+ * case_intro_pattern_expr
| TacSimpleDestruct of quantified_hypothesis
| TacNewDestruct of 'constr induction_arg * 'constr with_bindings option
- * intro_pattern_expr list list
+ * case_intro_pattern_expr
| TacDoubleInduction of quantified_hypothesis * quantified_hypothesis
| TacDecomposeAnd of 'constr
@@ -155,6 +167,9 @@ type ('constr,'pat,'cst,'ind,'ref,'id,'tac) gen_atomic_tactic_expr =
| TacSymmetry of 'id option
| TacTransitivity of 'constr
+ (* Equality and inversion *)
+ | TacInversion of ('constr,'id) inversion_strength * quantified_hypothesis
+
(* For ML extensions *)
| TacExtend of loc * string * ('constr,'tac) generic_argument list