aboutsummaryrefslogtreecommitdiff
path: root/tactics/elim.mli
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2020-08-29 18:25:54 +0200
committerPierre-Marie Pédrot2020-08-31 10:21:35 +0200
commitbb09af9e9cfa32f89cb5538a6e51af5dae6cc467 (patch)
tree6bfae708f5448adfac66f7cfa8c3cc6070e9cae1 /tactics/elim.mli
parent9c9bf136430213eacec8e32ad4909cf501141a48 (diff)
Move elim-specific code from Tacticals to Elim.
No reason to have them there.
Diffstat (limited to 'tactics/elim.mli')
-rw-r--r--tactics/elim.mli28
1 files changed, 27 insertions, 1 deletions
diff --git a/tactics/elim.mli b/tactics/elim.mli
index e89855a050..319c4b5f6b 100644
--- a/tactics/elim.mli
+++ b/tactics/elim.mli
@@ -10,11 +10,37 @@
open Names
open EConstr
-open Tacticals
open Tactypes
(** Eliminations tactics. *)
+type branch_args = private {
+ ity : Constr.pinductive; (** the type we were eliminating on *)
+ branchnum : int; (** the branch number *)
+ nassums : int; (** number of assumptions/letin to be introduced *)
+ branchsign : bool list; (** the signature of the branch.
+ true=assumption, false=let-in *)
+ branchnames : intro_patterns}
+
+type branch_assumptions = private {
+ ba : branch_args; (** the branch args *)
+ assums : named_context} (** the list of assumptions introduced *)
+
+val elimination_then :
+ (branch_args -> unit Proofview.tactic) ->
+ constr -> unit Proofview.tactic
+
+val case_then_using :
+ or_and_intro_pattern option -> (branch_args -> unit Proofview.tactic) ->
+ constr option -> inductive * EInstance.t -> constr * types -> unit Proofview.tactic
+
+val case_nodep_then_using :
+ or_and_intro_pattern option -> (branch_args -> unit Proofview.tactic) ->
+ constr option -> inductive * EInstance.t -> constr * types -> unit Proofview.tactic
+
+val elim_on_ba : (branch_assumptions -> unit Proofview.tactic) -> branch_args -> unit Proofview.tactic
+val case_on_ba : (branch_assumptions -> unit Proofview.tactic) -> branch_args -> unit Proofview.tactic
+
val introCaseAssumsThen : Tactics.evars_flag ->
(intro_patterns -> branch_assumptions -> unit Proofview.tactic) ->
branch_args -> unit Proofview.tactic