@@ -1640,6 +1640,15 @@ m≤n⇒n∸m≤n (s≤s m≤n) = m≤n⇒m≤1+n (m≤n⇒n∸m≤n m≤n)
16401640 suc ((m + n) ∸ o) ≡⟨ cong suc (+-∸-assoc m o≤n) ⟩
16411641 suc (m + (n ∸ o)) ∎
16421642
1643+ m∸n+o≡m∸[n∸o] : ∀ {m n o} → n ≤ m → o ≤ n → (m ∸ n) + o ≡ m ∸ (n ∸ o)
1644+ m∸n+o≡m∸[n∸o] {m} {zero} {zero} z≤n _ = +-identityʳ m
1645+ m∸n+o≡m∸[n∸o] {suc m} {suc n} {zero} (s≤s n≤m) z≤n = +-identityʳ (m ∸ n)
1646+ m∸n+o≡m∸[n∸o] {suc m} {suc n} {suc o} (s≤s n≤m) (s≤s o≤n) = begin-equality
1647+ suc m ∸ suc n + suc o ≡⟨ +-suc (m ∸ n) o ⟩
1648+ suc (m ∸ n + o) ≡⟨ cong suc (m∸n+o≡m∸[n∸o] n≤m o≤n) ⟩
1649+ suc (m ∸ (n ∸ o)) ≡⟨ ∸-suc (≤-trans (m∸n≤m n o) n≤m) ⟨
1650+ suc m ∸ (n ∸ o) ∎
1651+
16431652m≤n+o⇒m∸n≤o : ∀ m n {o} → m ≤ n + o → m ∸ n ≤ o
16441653m≤n+o⇒m∸n≤o m zero le = le
16451654m≤n+o⇒m∸n≤o zero (suc n) _ = z≤n
@@ -1728,11 +1737,30 @@ even≢odd (suc m) (suc n) eq = even≢odd m n (suc-injective (begin-equality
17281737------------------------------------------------------------------------
17291738-- Properties of _∸_ and _⊓_ and _⊔_
17301739
1740+ m∸n≤m⊔n : ∀ m n → m ∸ n ≤ m ⊔ n
1741+ m∸n≤m⊔n m n = ≤-trans (m∸n≤m m n) (m≤m⊔n m n)
1742+
17311743m⊓n+n∸m≡n : ∀ m n → (m ⊓ n) + (n ∸ m) ≡ n
17321744m⊓n+n∸m≡n zero n = refl
17331745m⊓n+n∸m≡n (suc m) zero = refl
17341746m⊓n+n∸m≡n (suc m) (suc n) = cong suc $ m⊓n+n∸m≡n m n
17351747
1748+ m⊔n∸[m∸n]≡n : ∀ m n → m ⊔ n ∸ (m ∸ n) ≡ n
1749+ m⊔n∸[m∸n]≡n zero n = cong (n ∸_) (0∸n≡0 n)
1750+ m⊔n∸[m∸n]≡n (suc m) zero = n∸n≡0 m
1751+ m⊔n∸[m∸n]≡n (suc m) (suc n) = begin-equality
1752+ suc (m ⊔ n) ∸ (m ∸ n) ≡⟨ ∸-suc (m∸n≤m⊔n m n) ⟩
1753+ suc ((m ⊔ n) ∸ (m ∸ n)) ≡⟨ cong suc (m⊔n∸[m∸n]≡n m n) ⟩
1754+ suc n ∎
1755+
1756+ m⊔n≡m∸n+n : ∀ m n → m ⊔ n ≡ m ∸ n + n
1757+ m⊔n≡m∸n+n zero n = sym (cong (_+ n) (0∸n≡0 n))
1758+ m⊔n≡m∸n+n (suc m) zero = sym (cong suc (+-identityʳ m))
1759+ m⊔n≡m∸n+n (suc m) (suc n) = begin-equality
1760+ suc (m ⊔ n) ≡⟨ cong suc (m⊔n≡m∸n+n m n) ⟩
1761+ suc (m ∸ n + n) ≡⟨ +-suc (m ∸ n) n ⟨
1762+ m ∸ n + suc n ∎
1763+
17361764[m∸n]⊓[n∸m]≡0 : ∀ m n → (m ∸ n) ⊓ (n ∸ m) ≡ 0
17371765[m∸n]⊓[n∸m]≡0 zero zero = refl
17381766[m∸n]⊓[n∸m]≡0 zero (suc n) = refl
@@ -1850,6 +1878,17 @@ m∸n≤∣m-n∣ m n with ≤-total m n
18501878∣m-n∣≤m⊔n (suc m) zero = ≤-refl
18511879∣m-n∣≤m⊔n (suc m) (suc n) = m≤n⇒m≤1+n (∣m-n∣≤m⊔n m n)
18521880
1881+ ∣m-n∣≡m⊔n∸m⊓n : ∀ m n → ∣ m - n ∣ ≡ m ⊔ n ∸ m ⊓ n
1882+ ∣m-n∣≡m⊔n∸m⊓n m n with ≤-total m n
1883+ ... | inj₁ m≤n = begin-equality
1884+ ∣ m - n ∣ ≡⟨ m≤n⇒∣m-n∣≡n∸m m≤n ⟩
1885+ n ∸ m ≡⟨ cong₂ _∸_ (m≤n⇒m⊔n≡n m≤n) (m≤n⇒m⊓n≡m m≤n) ⟨
1886+ m ⊔ n ∸ m ⊓ n ∎
1887+ ... | inj₂ n≤m = begin-equality
1888+ ∣ m - n ∣ ≡⟨ m≤n⇒∣n-m∣≡n∸m n≤m ⟩
1889+ m ∸ n ≡⟨ cong₂ _∸_ (m≥n⇒m⊔n≡m n≤m) (m≥n⇒m⊓n≡n n≤m) ⟨
1890+ m ⊔ n ∸ m ⊓ n ∎
1891+
18531892∣-∣-identityˡ : LeftIdentity 0 ∣_-_∣
18541893∣-∣-identityˡ x = refl
18551894
0 commit comments