23 lines
650 B
Text
23 lines
650 B
Text
open tactic
|
|
|
|
print "------- fapply version ----------"
|
|
|
|
example (a : nat) : ∃ x : nat, x = a :=
|
|
by do
|
|
c₁ ← return (expr.const ("Exists" <.> "intro") [level.of_nat 1]),
|
|
fapply c₁, /- fapply adds all unassigned variables -/
|
|
trace_state,
|
|
swap, /- swap witness and ?M = a -/
|
|
a ← get_local "a",
|
|
mk_app ("eq" <.> "refl") [a] >>= exact
|
|
|
|
print "------- apply version ----------"
|
|
|
|
example (a : nat) : ∃ x : nat, x = a :=
|
|
by do
|
|
c₁ ← return (expr.const ("Exists" <.> "intro") [level.of_nat 1]),
|
|
/- apply does not add the goal |- nat -/
|
|
apply c₁,
|
|
trace_state,
|
|
a ← get_local "a",
|
|
mk_app ("eq" <.> "refl") [a] >>= exact
|