17 lines
543 B
Text
17 lines
543 B
Text
import Lean.Elab.ElabRules
|
|
import Lean.Meta.Tactic.Replace
|
|
|
|
elab "test" h:ident : tactic => do
|
|
let g ← Lean.Elab.Tactic.getMainGoal
|
|
g.withContext do
|
|
let ldec ← Lean.Meta.getLocalDeclFromUserName h.getId
|
|
let f := ldec.fvarId
|
|
let e ← Lean.Meta.whnf (← Lean.instantiateMVars ldec.type)
|
|
let newgoal ← g.replaceLocalDeclDefEq f e
|
|
Lean.Elab.Tactic.replaceMainGoal [newgoal]
|
|
|
|
def Nat.dvd (a b : Nat) := ∃ c, b = a * c
|
|
|
|
example (n : Nat) (h : Nat.dvd 2 n) : ∃ c, n = 2 * c := by
|
|
test h
|
|
with_reducible exact h
|