diff --git a/CHANGELOG.md b/CHANGELOG.md index 76ca38cd42..957ea761d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2044,6 +2044,9 @@ Other minor changes <⇒<′ : m < n → m <′ n <′⇒< : m <′ n → m < n + m+n≤p⇒m≤p∸n : m + n ≤ p → m ≤ p ∸ n + m≤p∸n⇒m+n≤p : n ≤ p → m ≤ p ∸ n → m + n ≤ p + 1≤n! : 1 ≤ n ! _!≢0 : NonZero (n !) _!*_!≢0 : NonZero (m ! * n !) diff --git a/src/Data/Nat/Properties.agda b/src/Data/Nat/Properties.agda index 3d38c77d07..6ff1b1f38b 100644 --- a/src/Data/Nat/Properties.agda +++ b/src/Data/Nat/Properties.agda @@ -1573,6 +1573,15 @@ m≤n⇒n∸m≤n (s≤s m≤n) = m≤n⇒m≤1+n (m≤n⇒n∸m≤n m≤n) (m + n) ∸ o ≡⟨ +-∸-assoc m o≤n ⟩ m + (n ∸ o) ∎ +m+n≤o⇒m≤o∸n : ∀ m n o → m + n ≤ o → m ≤ o ∸ n +m+n≤o⇒m≤o∸n zero n o le = z≤n +m+n≤o⇒m≤o∸n (suc m) n (suc o) (s≤s le) + rewrite +-∸-assoc 1 (m+n≤o⇒n≤o m le) = s≤s (m+n≤o⇒m≤o∸n m n o le) + +m≤o∸n⇒m+n≤o : ∀ m {n o} (n≤o : n ≤ o) → m ≤ o ∸ n → m + n ≤ o +m≤o∸n⇒m+n≤o m z≤n le rewrite +-identityʳ m = le +m≤o∸n⇒m+n≤o m {suc n} (s≤s n≤o) le rewrite +-suc m n = s≤s (m≤o∸n⇒m+n≤o m n≤o le) + m≤n+m∸n : ∀ m n → m ≤ n + (m ∸ n) m≤n+m∸n zero n = z≤n m≤n+m∸n (suc m) zero = ≤-refl