module ring-0003 where open import MLTT.Spartan open import ring-0000 open Ring {{...}} open import ring-0002
負負得正通常可能在說兩件事。第一,− − a = a,因為 −a 的反元素是 a 也可以是 − − a,因此 − − a 一定等於 a(因為 Ring 的加法部分是一個 commutative group)。
neg-neg-lemma : {R : 𝓤 ̇ } {{_ : Ring R}} (x : R) → - - x = x neg-neg-lemma x = ring-cancel-right (I ∙ II ⁻¹) where I : - - x ⊕ - x = 𝟘R I = cancel .pr₁ II : x ⊕ - x = 𝟘R II = cancel .pr₂
或是更重要的 −a × −b = a × b,也就是這裡要證明的命題
neg-lemma-left : {R : 𝓤 ̇ } {{_ : Ring R}} (a b : R) → - a ⊗ b = - (a ⊗ b) neg-lemma-left a b = ring-cancel-right (II ∙ I ⁻¹) where I : (- (a ⊗ b)) ⊕ a ⊗ b = 𝟘R I = (- (a ⊗ b)) ⊕ a ⊗ b =⟨ cancel .pr₁ ⟩ 𝟘R ∎ II : (- a ⊗ b) ⊕ a ⊗ b = 𝟘R II = (- a ⊗ b) ⊕ a ⊗ b =⟨ distrib1 ⁻¹ ⟩ (- a ⊕ a) ⊗ b =⟨ ap (_⊗ b) (cancel .pr₁) ⟩ 𝟘R ⊗ b =⟨ lemma-1 b .pr₂ ⟩ 𝟘R ∎ neg-lemma-right : {R : 𝓤 ̇ } {{_ : Ring R}} (a b : R) → a ⊗ - b = - (a ⊗ b) neg-lemma-right a b = ring-cancel-right (II ∙ I ⁻¹) where I : (- (a ⊗ b)) ⊕ a ⊗ b = 𝟘R I = cancel .pr₁ II : (a ⊗ - b) ⊕ a ⊗ b = 𝟘R II = (a ⊗ - b) ⊕ a ⊗ b =⟨ distrib2 ⁻¹ ⟩ a ⊗ (- b ⊕ b) =⟨ ap (a ⊗_) (cancel .pr₁) ⟩ a ⊗ 𝟘R =⟨ lemma-1 a .pr₁ ⟩ 𝟘R ∎ proposition-2 : {R : 𝓤 ̇ } {{_ : Ring R}} → (a b : R) → - a ⊗ - b = a ⊗ b proposition-2 {_}{R} a b = (- a ⊗ - b) =⟨ neg-lemma-left a (- b) ⟩ - (a ⊗ - b) =⟨ ap -_ (neg-lemma-right a b) ⟩ - - (a ⊗ b) =⟨ neg-neg-lemma (a ⊗ b) ⟩ a ⊗ b ∎