23 lines
612 B
Text
23 lines
612 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
|