diff options
| author | Pierre-Marie Pédrot | 2017-07-26 22:47:18 +0200 |
|---|---|---|
| committer | Pierre-Marie Pédrot | 2017-07-26 22:48:00 +0200 |
| commit | c9e7d7f1ceb22667e77a4ee49a4afc2cce6f9a2c (patch) | |
| tree | 0a79c66f8411d44441043e04bfaa032c8c886412 | |
| parent | 2d6461140fadf1af8b92567b77e869eb2bd9dd7e (diff) | |
Adding an example file
| -rw-r--r-- | tests/example1.v | 26 |
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). |
