@@ -1524,6 +1524,10 @@ pred[m∸n]≡m∸[1+n] (suc m) (suc n) = pred[m∸n]≡m∸[1+n] m n
15241524------------------------------------------------------------------------
15251525-- Properties of _∸_ and _≤_/_<_
15261526
1527+ ∸-suc : m ≤ n → suc n ∸ m ≡ suc (n ∸ m)
1528+ ∸-suc z≤n = refl
1529+ ∸-suc (s≤s m≤n) = ∸-suc m≤n
1530+
15271531m∸n≤m : ∀ m n → m ∸ n ≤ m
15281532m∸n≤m n zero = ≤-refl
15291533m∸n≤m zero (suc n) = ≤-refl
@@ -1614,12 +1618,11 @@ m≤n⇒n∸m≤n (s≤s m≤n) = m≤n⇒m≤1+n (m≤n⇒n∸m≤n m≤n)
16141618∸-+-assoc (suc m) (suc n) o = ∸-+-assoc m n o
16151619
16161620+-∸-assoc : ∀ m {n o} → o ≤ n → (m + n) ∸ o ≡ m + (n ∸ o)
1617- +-∸-assoc m (z≤n {n = n}) = begin-equality m + n ∎
1618- +-∸-assoc m (s≤s {m = o} {n = n} o≤n) = begin-equality
1619- (m + suc n) ∸ suc o ≡⟨ cong (_∸ suc o) (+-suc m n) ⟩
1620- suc (m + n) ∸ suc o ≡⟨⟩
1621- (m + n) ∸ o ≡⟨ +-∸-assoc m o≤n ⟩
1622- m + (n ∸ o) ∎
1621+ +-∸-assoc zero {n = n} {o = o} _ = begin-equality n ∸ o ∎
1622+ +-∸-assoc (suc m) {n = n} {o = o} o≤n = begin-equality
1623+ suc (m + n) ∸ o ≡⟨ ∸-suc (m≤n⇒m≤o+n m o≤n) ⟩
1624+ suc ((m + n) ∸ o) ≡⟨ cong suc (+-∸-assoc m o≤n) ⟩
1625+ suc (m + (n ∸ o)) ∎
16231626
16241627m≤n+o⇒m∸n≤o : ∀ m n {o} → m ≤ n + o → m ∸ n ≤ o
16251628m≤n+o⇒m∸n≤o m zero le = le
@@ -1634,7 +1637,7 @@ m<n+o⇒m∸n<o (suc m) (suc n) lt = m<n+o⇒m∸n<o m n (s<s⁻¹
16341637m+n≤o⇒m≤o∸n : ∀ m {n o} → m + n ≤ o → m ≤ o ∸ n
16351638m+n≤o⇒m≤o∸n zero le = z≤n
16361639m+n≤o⇒m≤o∸n (suc m) (s≤s le)
1637- rewrite +-∸-assoc 1 (m+n≤o⇒n≤o m le) = s≤s (m+n≤o⇒m≤o∸n m le)
1640+ rewrite ∸-suc (m+n≤o⇒n≤o m le) = s≤s (m+n≤o⇒m≤o∸n m le)
16381641
16391642m≤o∸n⇒m+n≤o : ∀ m {n o} (n≤o : n ≤ o) → m ≤ o ∸ n → m + n ≤ o
16401643m≤o∸n⇒m+n≤o m z≤n le rewrite +-identityʳ m = le
@@ -1671,7 +1674,7 @@ m∸n+n≡m {m} {n} n≤m = begin-equality
16711674m∸[m∸n]≡n : ∀ {m n} → n ≤ m → m ∸ (m ∸ n) ≡ n
16721675m∸[m∸n]≡n {m} {_} z≤n = n∸n≡0 m
16731676m∸[m∸n]≡n {suc m} {suc n} (s≤s n≤m) = begin-equality
1674- suc m ∸ (m ∸ n) ≡⟨ +-∸-assoc 1 (m∸n≤m m n) ⟩
1677+ suc m ∸ (m ∸ n) ≡⟨ ∸-suc (m∸n≤m m n) ⟩
16751678 suc (m ∸ (m ∸ n)) ≡⟨ cong suc (m∸[m∸n]≡n n≤m) ⟩
16761679 suc n ∎
16771680
0 commit comments