diff --git a/CHANGELOG.md b/CHANGELOG.md index 35a0991cac..f013ee4bc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -280,7 +280,7 @@ Non-backwards compatible changes Data.Sum.Function.Setoid Data.Sum.Function.Propositional ``` - + * Additionally the following proofs now use the new definitions instead of the old ones: * `Algebra.Lattice.Properties.BooleanAlgebra` * `Algebra.Properties.CommutativeMonoid.Sum` @@ -360,8 +360,8 @@ Non-backwards compatible changes * The module `Function.Definitions` no longer has two equalities as module arguments, as they did not interact as intended with the re-exports from `Function.Definitions.(Core1/Core2)`. The latter have been removed and their definitions folded into `Function.Definitions`. - -* In `Function.Definitions` the types of `Surjective`, `Injective` and `Surjective` + +* In `Function.Definitions` the types of `Surjective`, `Injective` and `Surjective` have been changed from: ``` Surjective f = ∀ y → ∃ λ x → f x ≈₂ y @@ -376,16 +376,16 @@ Non-backwards compatible changes ``` This is for several reasons: i) the new definitions compose much more easily, ii) Agda can better infer the equalities used. - + To ease backwards compatibility: - - the old definitions have been moved to the new names `StrictlySurjective`, - `StrictlyInverseˡ` and `StrictlyInverseʳ`. - - The records in `Function.Structures` and `Function.Bundles` export proofs - of these under the names `strictlySurjective`, `strictlyInverseˡ` and - `strictlyInverseʳ`, + - the old definitions have been moved to the new names `StrictlySurjective`, + `StrictlyInverseˡ` and `StrictlyInverseʳ`. + - The records in `Function.Structures` and `Function.Bundles` export proofs + of these under the names `strictlySurjective`, `strictlyInverseˡ` and + `strictlyInverseʳ`, - Conversion functions have been added in both directions to - `Function.Consequences(.Propositional)`. - + `Function.Consequences(.Propositional)`. + #### Proofs of non-zeroness/positivity/negativity as instance arguments * Many numeric operations in the library require their arguments to be non-zero, @@ -772,14 +772,14 @@ Non-backwards compatible changes ### Changes to triple reasoning interface * The module `Relation.Binary.Reasoning.Base.Triple` now takes an extra proof that the strict - relation is irreflexive. - + relation is irreflexive. + * This allows the following new proof combinator: ```agda begin-contradiction : (r : x IsRelatedTo x) → {s : True (IsStrict? r)} → A ``` that takes a proof that a value is strictly less than itself and then applies the principle of explosion. - + * Specialised versions of this combinator are available in the following derived modules: ``` Data.Nat.Properties @@ -1414,6 +1414,11 @@ Deprecated names *-rawMonoid ↦ *-1-rawMonoid ``` +* In `Data.Rational.Unnormalised.Properties`: + ``` + ≤-steps ↦ p≤q⇒p≤r+q + ``` + * In `Data.Sum.Properties`: ```agda [,]-∘-distr ↦ [,]-∘ @@ -1463,7 +1468,7 @@ Deprecated names take-distr-map ↦ take-map drop-distr-zipWith ↦ drop-zipWith drop-distr-map ↦ drop-map - + updateAt-id-relative ↦ updateAt-id-local updateAt-compose-relative ↦ updateAt-∘-local updateAt-compose ↦ updateAt-∘ @@ -2336,7 +2341,7 @@ Additions to existing modules length-isMagmaHomomorphism : (A : Set a) → IsMagmaHomomorphism (++-rawMagma A) +-rawMagma length length-isMonoidHomomorphism : (A : Set a) → IsMonoidHomomorphism (++-[]-rawMonoid A) +-0-rawMonoid length - + take-map : take n (map f xs) ≡ map f (take n xs) drop-map : drop n (map f xs) ≡ map f (drop n xs) head-map : head (map f xs) ≡ Maybe.map f (head xs) @@ -3019,6 +3024,7 @@ Additions to existing modules * Added new definitions in `Relation.Binary.Definitions`: ``` + Dense _<_ = ∀ {x y} → x < y → ∃[ z ] x < z × z < y Cotransitive _#_ = ∀ {x y} → x # y → ∀ z → (x # z) ⊎ (z # y) Tight _≈_ _#_ = ∀ x y → (¬ x # y → x ≈ y) × (x ≈ y → ¬ x # y) @@ -3033,11 +3039,13 @@ Additions to existing modules * Added new definitions in `Relation.Binary.Bundles`: ``` + record DenseLinearOrder c ℓ₁ ℓ₂ : Set (suc (c ⊔ ℓ₁ ⊔ ℓ₂)) where record ApartnessRelation c ℓ₁ ℓ₂ : Set (suc (c ⊔ ℓ₁ ⊔ ℓ₂)) where ``` * Added new definitions in `Relation.Binary.Structures`: ``` + record IsDenseLinearOrder (_<_ : Rel A ℓ₂) : Set (a ⊔ ℓ ⊔ ℓ₂) where record IsApartnessRelation (_#_ : Rel A ℓ₂) : Set (a ⊔ ℓ ⊔ ℓ₂) where ``` @@ -3271,7 +3279,6 @@ This is a full list of proofs that have changed form to use irrelevant instance negative; tri≈; _Respectsʳ_; _Respectsˡ_; _Respects₂_) + using (DecidableEquality; Reflexive; Transitive; Antisymmetric; Total; Decidable; Irrelevant; Irreflexive; Asymmetric; Dense; Trans; Trichotomous; tri<; tri>; tri≈; _Respectsʳ_; _Respectsˡ_; _Respects₂_) open import Relation.Binary.PropositionalEquality open import Relation.Binary.Morphism.Structures import Relation.Binary.Morphism.OrderMonomorphism as OrderMonomorphisms @@ -614,6 +614,20 @@ toℚᵘ-isOrderMonomorphism-< = record <-asym : Asymmetric _<_ <-asym (*<* p?_ = flip _?_ = flip _) + using (Reflexive; Symmetric; Transitive; Cotransitive; Tight; Decidable; Antisymmetric; Asymmetric; Dense; Total; Trans; Trichotomous; Irreflexive; Irrelevant; _Respectsˡ_; _Respectsʳ_; _Respects₂_; tri≈; tri<; tri>) import Relation.Binary.Consequences as BC open import Relation.Binary.PropositionalEquality import Relation.Binary.Properties.Poset as PosetProperties @@ -119,7 +118,7 @@ p ≃? q = Dec.map′ *≡* drop-*≡* (↥ p ℤ.* ↧ q ℤ.≟ ↥ q ℤ.* ≠-cotransitive {x} {y} x≠y z with x ≃? z | z ≃? y ... | no x≠z | _ = inj₁ x≠z ... | yes _ | no z≠y = inj₂ z≠y -... | yes x≃z | yes z≃y = ⊥-elim (x≠y (≃-trans x≃z z≃y)) +... | yes x≃z | yes z≃y = contradiction (≃-trans x≃z z≃y) x≠y ≃-isEquivalence : IsEquivalence _≃_ ≃-isEquivalence = record @@ -412,6 +411,39 @@ drop-*<* (*<* pq?_ = flip _?_ = flip _