20 lines
530 B
Text
20 lines
530 B
Text
/- Structuring proofs (cont.) -/
|
||
|
||
example : p ∧ (q ∨ r) → (p ∧ q) ∨ (p ∧ r) := by
|
||
intro h
|
||
have hp : p := h.left
|
||
have hqr : q ∨ r := h.right
|
||
show (p ∧ q) ∨ (p ∧ r)
|
||
cases hqr with
|
||
| inl hq => exact Or.inl ⟨hp, hq⟩
|
||
| inr hr => exact Or.inr ⟨hp, hr⟩
|
||
|
||
example : p ∧ (q ∨ r) → (p ∧ q) ∨ (p ∧ r) := by
|
||
intro ⟨hp, hqr⟩
|
||
cases hqr with
|
||
| inl hq =>
|
||
have := And.intro hp hq
|
||
apply Or.inl; exact this
|
||
| inr hr =>
|
||
have := And.intro hp hr
|
||
apply Or.inr; exact this
|