lean2/tests/lean/run/reverts_tac.lean

30 lines
568 B
Text
Raw Normal View History

import logic
theorem tst {a b c : Prop} : a → b → c → a ∧ b :=
begin
intros [Ha, Hb, Hc],
reverts [Hb, Ha],
intros [Hb2, Ha2],
apply (and.intro Ha2 Hb2),
end
theorem foo1 {A : Type} (a b c : A) (P : A → Prop) : P a → a = b → P b :=
begin
intros [Hp, Heq],
reverts [Heq, Hp],
intro Heq,
eapply (eq.rec_on Heq),
intro Pa,
apply Pa
end
theorem foo2 {A : Type} (a b c : A) (P : A → Prop) : P a → a = b → P b :=
begin
intros [Hp, Heq],
apply (eq.rec_on Heq Hp)
end
wait foo1 foo2
print definition foo1
print definition foo2