aboutsummaryrefslogtreecommitdiff
path: root/theories
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2017-08-01 16:56:27 +0200
committerPierre-Marie Pédrot2017-08-01 19:39:29 +0200
commitc3be78f96b91a042944f9bee66bf0ea8d929a37d (patch)
tree4122408124a9b04c3e7f8e08f1c3304792391483 /theories
parent30fc910b01f61ce3691ed63a0908c1c60cee76dd (diff)
Introducing the all-mighty intro-patterns.
Diffstat (limited to 'theories')
-rw-r--r--theories/Std.v27
1 files changed, 27 insertions, 0 deletions
diff --git a/theories/Std.v b/theories/Std.v
index 3070c2e005..a27790c35d 100644
--- a/theories/Std.v
+++ b/theories/Std.v
@@ -49,8 +49,35 @@ Ltac2 Type red_flags := {
rConst : evaluable_reference list
}.
+Ltac2 Type 'a not_implemented.
+
+Ltac2 Type rec intro_pattern := [
+| IntroForthcoming (bool)
+| IntroNaming (intro_pattern_naming)
+| IntroAction (intro_pattern_action)
+]
+with intro_pattern_naming := [
+| IntroIdentifier (ident)
+| IntroFresh (ident)
+| IntroAnonymous
+]
+with intro_pattern_action := [
+| IntroWildcard
+| IntroOrAndPattern (or_and_intro_pattern)
+| IntroInjection (intro_pattern list)
+| IntroApplyOn ((constr * intro_pattern) not_implemented) (* Not Implemented yet *)
+| IntroRewrite (bool)
+]
+with or_and_intro_pattern := [
+| IntroOrPattern (intro_pattern list list)
+| IntroAndPattern (intro_pattern list)
+].
+
(** Standard, built-in tactics. See Ltac1 for documentation. *)
+Ltac2 @ external intros : intro_pattern list -> unit := "ltac2" "tac_intros".
+Ltac2 @ external eintros : intro_pattern list -> unit := "ltac2" "tac_eintros".
+
Ltac2 @ external eelim : constr_with_bindings -> constr_with_bindings option -> unit := "ltac2" "tac_eelim".
Ltac2 @ external ecase : constr_with_bindings -> unit := "ltac2" "tac_ecase".