2015-03-07 01:47:01 +00:00
|
|
|
notation `⟪`:max t:(foldr `,` (e r, and.intro e r)) `⟫`:0 := t
|
|
|
|
|
|
|
|
check ⟪ trivial, trivial, trivial ⟫
|
|
|
|
|
|
|
|
theorem tst (a b c d : Prop) : a ∧ b ∧ c ∧ d ↔ d ∧ c ∧ b ∧ a :=
|
|
|
|
begin
|
|
|
|
apply iff.intro,
|
|
|
|
begin
|
|
|
|
intro H,
|
|
|
|
match H with
|
|
|
|
| ⟪ H₁, H₂, H₃, H₄ ⟫ := ⟪ H₄, H₃, H₂, H₁ ⟫
|
|
|
|
end
|
|
|
|
end,
|
|
|
|
begin
|
|
|
|
intro H,
|
|
|
|
match H with
|
|
|
|
| ⟪ H₁, H₂, H₃, H₄ ⟫ :=
|
|
|
|
begin
|
|
|
|
repeat [apply and.intro | assumption]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
print definition tst
|
|
|
|
|
|
|
|
theorem tst2 (a b c d : Prop) : a ∧ b ∧ c ∧ d ↔ d ∧ c ∧ b ∧ a :=
|
|
|
|
begin
|
|
|
|
apply iff.intro,
|
2015-03-28 00:26:06 +00:00
|
|
|
repeat (intro H; repeat [cases H with [H', H] | apply and.intro | assumption])
|
2015-03-07 01:47:01 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
print definition tst2
|