29 lines
468 B
Text
29 lines
468 B
Text
open tactic
|
|
|
|
constant f : nat → nat
|
|
|
|
meta def check_expr (p : pexpr) (t : expr) : tactic unit :=
|
|
do e ← to_expr p, guard (t = e)
|
|
|
|
namespace foo
|
|
axiom f_lemma1 : f 0 = 1
|
|
namespace bla
|
|
axiom f_lemma2 : f 1 = 2
|
|
|
|
def g (a : nat) := a + 1
|
|
|
|
example : g 0 = 1 :=
|
|
begin
|
|
unfold g,
|
|
(target >>= check_expr `(0 + 1 = 1)),
|
|
reflexivity
|
|
end
|
|
|
|
example : f (f 0) = 2 :=
|
|
by rewrite [f_lemma1, f_lemma2]
|
|
|
|
lemma ex2 : f (f 0) = 2 :=
|
|
by simp [f_lemma1, f_lemma2]
|
|
|
|
end bla
|
|
end foo
|