aboutsummaryrefslogtreecommitdiff
path: root/theories
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2017-08-01 14:43:30 +0200
committerPierre-Marie Pédrot2017-08-01 15:48:23 +0200
commit8a8fd265158fa3fe7eea65b50c3da722e81fa688 (patch)
tree2d121778619f7dcaaeda7316dcc9fa311cac350a /theories
parent7cd31681eb5e3ccc7e7e920bb7eebe92827f6b16 (diff)
Binding more primitive tactics.
Diffstat (limited to 'theories')
-rw-r--r--theories/Std.v25
1 files changed, 25 insertions, 0 deletions
diff --git a/theories/Std.v b/theories/Std.v
index a9eced6cbb..3070c2e005 100644
--- a/theories/Std.v
+++ b/theories/Std.v
@@ -34,6 +34,21 @@ Ltac2 Type clause := {
on_concl : occurrences;
}.
+Ltac2 Type evaluable_reference := [
+| EvalVarRef (ident)
+| EvalConstRef (constant)
+].
+
+Ltac2 Type red_flags := {
+ rBeta : bool;
+ rMatch : bool;
+ rFix : bool;
+ rCofix : bool;
+ rZeta : bool;
+ rDelta : bool; (** true = delta all but rConst; false = delta only on rConst*)
+ rConst : evaluable_reference list
+}.
+
(** Standard, built-in tactics. See Ltac1 for documentation. *)
Ltac2 @ external eelim : constr_with_bindings -> constr_with_bindings option -> unit := "ltac2" "tac_eelim".
@@ -41,6 +56,16 @@ Ltac2 @ external ecase : constr_with_bindings -> unit := "ltac2" "tac_ecase".
Ltac2 @ external egeneralize : (constr * occurrences * ident option) list -> unit := "ltac2" "tac_egeneralize".
+Ltac2 @ external pose : ident option -> constr -> unit := "ltac2" "tac_pose".
+Ltac2 @ external set : ident option -> (unit -> constr) -> clause -> unit := "ltac2" "tac_set".
+Ltac2 @ external eset : ident option -> (unit -> constr) -> clause -> unit := "ltac2" "tac_eset".
+
+Ltac2 @ external red : clause -> unit := "ltac2" "tac_red".
+Ltac2 @ external hnf : clause -> unit := "ltac2" "tac_hnf".
+Ltac2 @ external cbv : red_flags -> clause -> unit := "ltac2" "tac_cbv".
+Ltac2 @ external cbn : red_flags -> clause -> unit := "ltac2" "tac_cbn".
+Ltac2 @ external lazy : red_flags -> clause -> unit := "ltac2" "tac_lazy".
+
Ltac2 @ external reflexivity : unit -> unit := "ltac2" "tac_reflexivity".
Ltac2 @ external assumption : unit -> unit := "ltac2" "tac_assumption".