1

LEAN チュートリアルの第 3 章の最後にある 2 つの証明のうち、私がまだ苦労している (そのため、マニュアルを読み進められない) は次のとおりです。

theorem T11 : ¬(p ↔ ¬p) := sorry

正しい含意を証明する私の試みは、この時点で停止しました。

theorem T11R : ¬(p → ¬p) := 
begin 
    assume hyp : p → ¬ p, 
    cases (em p) with hp hnp, 
    exact (hyp hp) hp, 
    exact sorry 
end

明らかに、私はまだ を利用する方法を知りません¬p。左の含意を示す方法もわかりません。もう1つはこれです:

theorem T2R : ((p ∨ q) → r) → (p → r) ∧ (q → r) := 
begin
    intros porqr, sorry
end

以下を示すために(正しい意味として)使用していると思われます:

theorem T2 : ((p ∨ q) → r) ↔ (p → r) ∧ (q → r) := 
begin    
    have goR : ((p ∨ q) → r) → (p → r) ∧ (q → r), from T2R p q r,
    have goL : (p → r) ∧ (q → r) → ((p ∨ q) → r), from T2L p q r,
    exact iff.intro (goR) (goL)
end

ここで私は左側に行きました:

theorem T2L : (p → r) ∧ (q → r) → ((p ∨ q) → r) := 
begin
    intros prqr,
    assume porq : p ∨ q,
    exact or.elim porq prqr.left prqr.right
end
4

1 に答える 1