aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2017-07-26 22:47:18 +0200
committerPierre-Marie Pédrot2017-07-26 22:48:00 +0200
commitc9e7d7f1ceb22667e77a4ee49a4afc2cce6f9a2c (patch)
tree0a79c66f8411d44441043e04bfaa032c8c886412
parent2d6461140fadf1af8b92567b77e869eb2bd9dd7e (diff)
Adding an example file
-rw-r--r--tests/example1.v26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/example1.v b/tests/example1.v
new file mode 100644
index 0000000000..1b26aad824
--- /dev/null
+++ b/tests/example1.v
@@ -0,0 +1,26 @@
+Require Import Ltac2.Ltac2.
+
+Import Ltac2.Control.
+
+(** Alternative implementation of the hyp primitive *)
+Ltac2 get_hyp_by_name x :=
+ let h := hyps () in
+ let rec find x l := match l with
+ | [] => zero Not_found
+ | p :: l =>
+ match p with
+ | (id, _, t) =>
+ match Ident.equal x id with
+ | true => t
+ | false => find x l
+ end
+ end
+ end in
+ find x h.
+
+Print Ltac2 get_hyp_by_name.
+
+Goal forall n m, n + m = 0 -> n = 0.
+Proof.
+refine (fun () => '(fun n m H => _)).
+let t := get_hyp_by_name @H in Message.print (Message.of_constr t).