34 lines
736 B
Text
34 lines
736 B
Text
|
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,
|
||
|
repeat (intro H; repeat [cases H with (H', H) | apply and.intro | assumption])
|
||
|
end
|
||
|
|
||
|
print definition tst2
|