lean4-htt/tests/lean/run/simp_ext1.lean
2016-07-29 13:03:23 -07:00

24 lines
718 B
Text

import data.list
open list tactic option
constants (A : Type.{1}) (x y z : A) (Hy : x = y) (Hz : y = z)
constants (f₁ : A → A) (f₂ : A → A → A)
meta_definition simp_x_to_y : tactic unit := mk_eq_simp_ext $
λ e, do res ← mk_const `y,
pf ← mk_const `Hy,
return (res, pf)
meta_definition simp_y_to_z : tactic unit := mk_eq_simp_ext $
λ e, do res ← mk_const `z,
pf ← mk_const `Hz,
return (res, pf)
register_simp_ext x simp_x_to_y
register_simp_ext y simp_y_to_z
print [simp_ext]
example : x = z := by simp
example : f₁ x = f₁ y := by simp
example : f₁ (f₂ x y) = f₁ (f₂ z z) := by simp
example : f₁ (f₂ x y) = f₁ (f₂ y x) := by simp