diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d99a6eb2b..b1aa32b023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1260,7 +1260,7 @@ Deprecated modules ### Deprecation of `Data.Nat.Properties.Core` -* The module `Data.Nat.Properties.Core` has been deprecated, and its one entry moved to `Data.Nat.Properties` +* The module `Data.Nat.Properties.Core` has been deprecated, and its one lemma moved to `Data.Nat.Base`, renamed as `s≤s⁻¹` ### Deprecation of `Data.Fin.Substitution.Example` @@ -1527,6 +1527,7 @@ Deprecated names ≤-stepsˡ ↦ m≤n⇒m≤o+n ≤-stepsʳ ↦ m≤n⇒m≤n+o <-step ↦ m (λ()) (λ()) z i≮j i≢j j (i≮j ∘ ℕₚ.≤-pred) (i≢j ∘ suc-injective) (s i≮j i≢j j (i≮j ∘ s m≮n m≢n n>m = tri< (-<- n>m) (m≢n ∘ -[1+-injective) (m≮n ∘ drop‿-<-) <-cmp +[1+ m ] +[1+ n ] with ℕ.<-cmp m n -... | tri< m m≮n m≢n n>m = tri> (m≮n ∘ ℕ.≤-pred ∘ drop‿+<+) (m≢n ∘ +[1+-injective) (+<+ (sm)) +... | tri< m m≮n m≢n n>m = tri> (m≮n ∘ sm)) infix 4 _ j neg-cancel-< { +[1+ m ]} { +[1+ n ]} (-<- n′_ @@ -308,8 +317,9 @@ m ≥′ n = n ≤′ m _>′_ : Rel ℕ 0ℓ m >′ n = n <′ m ------------------------------------------------------------------------- --- Another alternative definition of _≤_ +-- _≤″_: this definition of _≤_ is used for proof-irrelevant ‵DivMod` +-- and is a specialised instance of a general algebraic construction + infix 4 _≤″_ _<″_ _≥″_ _>″_ _≤″_ : (m n : ℕ) → Set @@ -326,10 +336,20 @@ m ≥″ n = n ≤″ m _>″_ : Rel ℕ 0ℓ m >″ n = n <″ m ------------------------------------------------------------------------- --- Another alternative definition of _≤_ +-- Smart constructors of _≤″_ and _<″_ + +pattern ≤″-offset k = less-than-or-equal {k = k} refl +pattern <″-offset k = ≤″-offset k + +-- Smart destructors of _<″_ + +s≤″s⁻¹ : ∀ {m n} → suc m ≤″ suc n → m ≤″ n +s≤″s⁻¹ (≤″-offset k) = ≤″-offset k + +s<″s⁻¹ : ∀ {m n} → suc m <″ suc n → m <″ n +s<″s⁻¹ (<″-offset k) = <″-offset k --- Useful for induction when you have an upper bound. +-- _≤‴_: this definition is useful for induction with an upper bound. data _≤‴_ : ℕ → ℕ → Set where ≤‴-refl : ∀{m} → m ≤‴ m diff --git a/src/Data/Nat/Binary/Properties.agda b/src/Data/Nat/Binary/Properties.agda index 638482131f..6109106b26 100644 --- a/src/Data/Nat/Binary/Properties.agda +++ b/src/Data/Nat/Binary/Properties.agda @@ -15,7 +15,7 @@ open import Algebra.Consequences.Propositional open import Data.Bool.Base using (if_then_else_; Bool; true; false) open import Data.Maybe.Base using (Maybe; just; nothing) open import Data.Nat.Binary.Base -open import Data.Nat as ℕ using (ℕ; z≤n; s≤s) +open import Data.Nat as ℕ using (ℕ; z≤n; s≤s; s 0 → m < m + n m0 = n>0 @@ -727,8 +723,8 @@ m 0 → m < n + m m0 rewrite +-comm n m = m0 m+n≮n : ∀ m n → m + n ≮ n -m+n≮n zero n = n≮n n -m+n≮n (suc m) (suc n) (s