|
| 1 | +Version 0.3.0 |
| 2 | +=============== |
| 3 | + |
| 4 | +The library has been tested using Agda 2.8.0 and stdlib 2.3.0. |
| 5 | + |
| 6 | +## Infrastructure changes |
| 7 | + |
| 8 | +* Better caching, so that CI generally runs faster |
| 9 | + |
| 10 | +## Changes affecting compatibility |
| 11 | + |
| 12 | +### Removed modules |
| 13 | + |
| 14 | +* `Categories.Adjoint.Equivalence.Properties` |
| 15 | +main export `⊣equiv-preserves-diagram` is special case of `la-preserves-diagram`. |
| 16 | + |
| 17 | +### Changes of fields |
| 18 | + |
| 19 | +* `Categories.Diagram.Pullback` |
| 20 | + |
| 21 | + ```agda |
| 22 | + unique -> unique-diagram |
| 23 | + ``` |
| 24 | +* `Categories.Diagram.Pushout` |
| 25 | + Split `Pushout` into an `IsPushout` predicate and the data fields |
| 26 | + |
| 27 | +### Changing definitions or names |
| 28 | + |
| 29 | +* `Categories.Adjoint.Instance.Slice` |
| 30 | + Forgetful⊣Free -> TotalSpace⊣ConstantFamily |
| 31 | + |
| 32 | +* `Categories.Category.Instance.Sets` |
| 33 | + ```agda |
| 34 | + _≈_ = λ f g → ∀ {x} → f x ≡ g x |
| 35 | + ``` |
| 36 | + to |
| 37 | + ```agda |
| 38 | + _≈_ = _≗_ |
| 39 | + ``` |
| 40 | + which makes `x` explicit. |
| 41 | + * `Categories.Functor.Slice` |
| 42 | + Forgetful -> TotalSpace |
| 43 | + Free -> ConstantFamily |
| 44 | + |
| 45 | +## New modules |
| 46 | + |
| 47 | +* `Categories.Adjoint.Instance.BaseChange` |
| 48 | +* `Categories.Adjoint.Instance.Slice` |
| 49 | +* `Categories.Bicategory.LocalCoequalizers` |
| 50 | +* `Categories.Bicategory.Monad.Bimodule` |
| 51 | +* `Categories.Bicategory.Monad.Bimodule.Homomorphism` |
| 52 | +* `Categories.Category.Cocomplete.Properties.Construction` |
| 53 | +* `Categories.Category.Construction.Bimodules` |
| 54 | +* `Categories.Category.Construction.Bimodules.Properties` |
| 55 | +* `Categories.Category.Construction.DaggerFunctors` |
| 56 | +* `Categories.Category.Dagger.Construction.DaggerFunctors` |
| 57 | +* `Categories.Category.Distributive.Properties` |
| 58 | +* `Categories.Category.Instance.DagCats` |
| 59 | +* `Categories.Category.Instance.Zero.Core` |
| 60 | +* `Categories.Category.Instance.Zero.Properties` |
| 61 | +* `Categories.Category.Lift.Properties` |
| 62 | +* `Categories.Category.Monoidal.Construction.Kleisli` |
| 63 | +* `Categories.Category.Monoidal.Construction.Kleisli.CounitalCopy` |
| 64 | +* `Categories.Category.Monoidal.Construction.Kleisli.Symmetric` |
| 65 | +* `Categories.Category.Monoidal.Construction.Reverse` |
| 66 | +* `Categories.Category.Monoidal.CounitalCopy` |
| 67 | +* `Categories.Category.Monoidal.CounitalCopy.Restriction` |
| 68 | +* `Categories.Category.Monoidal.Symmetric.Properties` |
| 69 | +* `Categories.Category.Restriction.Construction.Kleisli` |
| 70 | +* `Categories.Category.Restriction.Properties.Poset` |
| 71 | +* `Categories.Comonad.Distributive` |
| 72 | +* `Categories.Comonad.Morphism` |
| 73 | +* `Categories.Diagram.Coend.Colimit` |
| 74 | +* `Categories.Diagram.Empty` |
| 75 | +* `Categories.Diagram.End.Fubini` |
| 76 | +* `Categories.Diagram.End.Instance.NaturalTransformations` |
| 77 | +* `Categories.Diagram.End.Instances.NaturalTransformation` |
| 78 | +* `Categories.Diagram.End.Limit` |
| 79 | +* `Categories.Diagram.End.Parameterized` |
| 80 | +* `Categories.Functor.Dagger` |
| 81 | +* `Categories.Functor.Slice.BaseChange` |
| 82 | +* `Categories.Monad.Commutative` |
| 83 | +* `Categories.Monad.Commutative.Properties` |
| 84 | +* `Categories.Monad.Distributive` |
| 85 | +* `Categories.Monad.EquationalLifting` |
| 86 | +* `Categories.Monad.Strong.Properties` |
| 87 | +* `Categories.Object.Coproduct.Indexed` |
| 88 | +* `Categories.Object.Coproduct.Indexed.Properties` |
| 89 | +* `Categories.Object.Initial.Colimit` |
| 90 | +* `Categories.Object.NaturalNumbers.Parametrized.Properties.F-Algebras` |
| 91 | +* `Categories.Object.StrictInitial` |
| 92 | + |
| 93 | +## Additions to existing modules |
| 94 | + |
| 95 | +* `Categories.Adjoint.Properties`: |
| 96 | + ```agda |
| 97 | + la-preserves-diagram : (L⊣R : L ⊣ R) → Limit F → Limit (F ∘F L) |
| 98 | + ra-preserves-diagram : (L⊣R : L ⊣ R) → Colimit F → Colimit (F ∘F R) |
| 99 | + ``` |
| 100 | +* `Categories.Bicategory.Extras` |
| 101 | + ```agda |
| 102 | + identity₂² : id₂ ∘ᵥ id₂ ≈ id₂ |
| 103 | + sym-assoc₂ : α ∘ᵥ β ∘ᵥ γ ≈ (α ∘ᵥ β) ∘ᵥ γ |
| 104 | + ∘ᵥ-distr-⊚ : (α ∘ᵥ γ) ⊚₁ (β ∘ᵥ δ) ≈ (α ⊚₁ β) ∘ᵥ (γ ⊚₁ δ) |
| 105 | + α⇐-⊚ : α⇐ ∘ᵥ (α ⊚₁ β ⊚₁ γ) ≈ ((α ⊚₁ β) ⊚₁ γ) ∘ᵥ α⇐ |
| 106 | + α⇒-⊚ : α⇒ ∘ᵥ ((α ⊚₁ β) ⊚₁ γ) ≈ (α ⊚₁ β ⊚₁ γ) ∘ᵥ α⇒ |
| 107 | + ◁-resp-≈ : α ≈ β → α ◁ f ≈ β ◁ f |
| 108 | + ▷-resp-≈ : α ≈ β → f ▷ α ≈ f ▷ β |
| 109 | + ▷-resp-sq : α ∘ᵥ β ≈ γ ∘ᵥ δ → f ▷ α ∘ᵥ f ▷ β ≈ f ▷ γ ∘ᵥ f ▷ δ |
| 110 | + ◁-resp-sq : α ∘ᵥ β ≈ γ ∘ᵥ δ → α ◁ f ∘ᵥ β ◁ f ≈ γ ◁ f ∘ᵥ δ ◁ f |
| 111 | + α⇒-▷-◁ : α⇒ ∘ᵥ ((f ▷ γ) ◁ g) ≈ (f ▷ (γ ◁ g)) ∘ᵥ α⇒ |
| 112 | + pentagon-var : (i ▷ α⇒ ∘ᵥ α⇒) ∘ᵥ α⇒ ◁ f ≈ α⇒ ∘ᵥ α⇒ |
| 113 | + pentagon-inv-var : α⇐ ◁ f ∘ᵥ α⇐ ∘ᵥ i ▷ α⇐ ≈ α⇐ ∘ᵥ α⇐ |
| 114 | + pentagon-conjugate₁ : α⇐ ∘ᵥ i ▷ α⇒ ∘ᵥ α⇒ ≈ α⇒ ∘ᵥ α⇐ ◁ f |
| 115 | + pentagon-conjugate₂ : i ▷ α⇒ ∘ᵥ α⇒ ≈ α⇒ ∘ᵥ α⇒ ∘ᵥ α⇐ ◁ f |
| 116 | + pentagon-conjugate₃ : α⇒ ◁ f ∘ᵥ α⇐ ≈ (α⇐ ∘ᵥ i ▷ α⇐) ∘ᵥ α⇒ |
| 117 | + pentagon-conjugate₄ : α⇒ ∘ᵥ α⇐ ◁ f ≈ α⇐ ∘ᵥ i ▷ α⇒ ∘ᵥ α⇒ |
| 118 | + pentagon-conjugate₅ : α⇐ ∘ᵥ i ▷ α⇒ ≈ α⇒ ∘ᵥ α⇐ ◁ f ∘ᵥ α⇐ |
| 119 | + UnitorCoherence.unitorˡ-coherence-iso : unitorˡ ◁ᵢ g ≈ᵢ unitorˡ ∘ᵢ associator |
| 120 | + unitorˡ-coherence-inv : [ f ⊚₀ g ⇒ (id₁ ⊚₀ f) ⊚₀ g ]⟨ λ⇐ ◁ g ≈ λ⇐ ⇒⟨ id₁ ⊚₀ (f ⊚₀ g) ⟩ α⇐ ⟩ |
| 121 | + unitorʳ-coherence-var₁ : [ (f ⊚₀ g) ⊚₀ id₁ ⇒ f ⊚₀ g ⊚₀ id₁ ]⟨ α⇒ ≈ ρ⇒ ⇒⟨ f ⊚₀ g ⟩ f ▷ ρ⇐ ⟩ |
| 122 | + unitorʳ-coherence-var₂ : [ f ⊚₀ g ⇒ f ⊚₀ g ⊚₀ id₁ ]⟨ f ▷ ρ⇐ ≈ ρ⇐ ⇒⟨ (f ⊚₀ g) ⊚₀ id₁ ⟩ α⇒ ⟩ |
| 123 | + unitorʳ-coherence-inv : [ f ⊚₀ g ⇒ (f ⊚₀ g) ⊚₀ id₁ ]⟨ f ▷ ρ⇐ ⇒⟨ f ⊚₀ g ⊚₀ id₁ ⟩ α⇐ ≈ ρ⇐ ⟩ |
| 124 | + ``` |
| 125 | +* `Categories.Category.CartesianClosed.Properties` |
| 126 | + ```agda |
| 127 | + initial→product-initial : IsInitial ⊥ → IsInitial (⊥ × A) |
| 128 | + initial→strict-initial : IsInitial ⊥ → IsStrictInitial ⊥ |
| 129 | + ``` |
| 130 | +* `Categories.Category.Cocartesian` |
| 131 | + ```agda |
| 132 | + ⊥+--id : NaturalIsomorphism (⊥ +-) idF |
| 133 | + -+⊥-id : NaturalIsomorphism (-+ ⊥) idF |
| 134 | + ``` |
| 135 | +* `Categories.Category.Construction.Functors` |
| 136 | + ```agda |
| 137 | + module ₀ (F : Bifunctor C₁ C₂ D) |
| 138 | + module uncurry |
| 139 | + ``` |
| 140 | +* `Categories.Category.Construction.Kleisli` |
| 141 | + ```agda |
| 142 | + module TripleNotation |
| 143 | + *∘F₁ : {f : Y ⇒ M.F.₀ Z} → f * ∘ M.F.₁ g ≈ (f ∘ g) * |
| 144 | + F₁∘* : {g : X ⇒ M.F.₀ Y} → M.F.₁ f ∘ g * ≈ (M.F.₁ f ∘ g) * |
| 145 | + *⇒F₁ : (η ∘ f) * ≈ M.F.₁ f |
| 146 | + ``` |
| 147 | +* `Categories.Category.Construction.TwistedArrow` |
| 148 | + ```agda |
| 149 | + Codomain : Functor TwistedArrow (𝒞.op ×ᶜ 𝒞) |
| 150 | + ``` |
| 151 | +* `Categories.Category.Distributive` |
| 152 | + ```agda |
| 153 | + distributeˡ⁻¹ : A × (B + C) ⇒ A × B + A × C |
| 154 | + distributeʳ⁻¹ : (B + C) × A ⇒ B × A + C × A |
| 155 | + ``` |
| 156 | +* `Categories.Category.Monoidal.Braided.Properties` |
| 157 | + ```agda |
| 158 | + assoc-reverse : [ X ⊗₀ (Y ⊗₀ Z) ⇒ (X ⊗₀ Y) ⊗₀ Z ]⟨ id ⊗₁ σ⇒ ⇒⟨ X ⊗₀ (Z ⊗₀ Y) ⟩ σ⇒ ⇒⟨ (Z ⊗₀ Y) ⊗₀ X ⟩ α⇒ ⇒⟨ Z ⊗₀ (Y ⊗₀ X) ⟩ id ⊗₁ σ⇐ ⇒⟨ Z ⊗₀ (X ⊗₀ Y) ⟩ σ⇐ ≈ α⇐ ⟩ |
| 159 | + ``` |
| 160 | +* `Categories.Category.Monoidal.Properties` |
| 161 | + ```agda |
| 162 | + monoidal-Op : M.Monoidal C.op |
| 163 | + ``` |
| 164 | +* `Categories.Category.Monoidal.Reasoning` |
| 165 | + ```agda |
| 166 | + merge₁ʳ : f ⊗₁ h ∘ g ⊗₁ id ≈ (f ∘ g) ⊗₁ h |
| 167 | + merge₁ˡ : f ⊗₁ id ∘ g ⊗₁ h ≈ (f ∘ g) ⊗₁ h |
| 168 | + ``` |
| 169 | +* `Categories.Comonad` |
| 170 | + ```agda |
| 171 | + id : Comonad C |
| 172 | + ``` |
| 173 | +* `Categories.Diagram.Cocone.Properties` |
| 174 | + ```agda |
| 175 | + mapˡ : Functor (Cocones F) (Cocones (G ∘F F)) |
| 176 | + mapʳ : Functor (Cocones F) (Cocones (F ∘F G)) |
| 177 | + nat-map : Functor (Cocones G) (Cocones F) |
| 178 | + ``` |
| 179 | +* `Categories.Diagram.Coend.Properties` |
| 180 | + ```agda |
| 181 | + build-Coend : Coequalizer D s t → Coend P |
| 182 | + ``` |
| 183 | +* `Categories.Diagram.Coequalizer` |
| 184 | + ```agda |
| 185 | + up-to-iso-triangle : (coe₁ coe₂ : Coequalizer h i) → _≅_.from (up-to-iso coe₁ coe₂) ∘ Coequalizer.arr coe₁ ≈ Coequalizer.arr coe₂ |
| 186 | + Coequalizers : Set (o ⊔ ℓ ⊔ e) |
| 187 | + Coequalizers = {A B : Obj} → (f g : A ⇒ B) → Coequalizer f g |
| 188 | + ``` |
| 189 | +* `Categories.Diagram.Coequalizer.Properties` |
| 190 | + ```agda |
| 191 | + splitCoequalizer⇒Coequalizer : (t : B ⇒ A) (s : C ⇒ B) (eq : e ∘ f ≈ e ∘ g) (tisSection : f ∘ t ≈ id) (sisSection : e ∘ s ≈ id) (sq : s ∘ e ≈ g ∘ t) → IsCoequalizer f g e |
| 192 | + splitCoequalizer⇒Coequalizer-sym : (t : B ⇒ A) (s : C ⇒ B) (eq : e ∘ f ≈ e ∘ g) (tisSection : g ∘ t ≈ id) (sisSection : e ∘ s ≈ id) (sq : s ∘ e ≈ f ∘ t) → IsCoequalizer f g e |
| 193 | + ⇒coequalize : (α : A₁ ⇒ A₂) (β : B₁ ⇒ B₂) (sq₁ : CommutativeSquare α f₁ f₂ β) (sq₂ : CommutativeSquare α g₁ g₂ β)(coeq₂ : Coequalizer f₂ g₂) → (arr coeq₂ ∘ β) ∘ f₁ ≈ (arr coeq₂ ∘ β) ∘ g₁ |
| 194 | + ⇒MapBetweenCoeq : (α : A₁ ⇒ A₂) (β : B₁ ⇒ B₂) (sq₁ : CommutativeSquare α f₁ f₂ β) (sq₂ : CommutativeSquare α g₁ g₂ β)(coeq₁ : Coequalizer f₁ g₁) → (coeq₂ : Coequalizer f₂ g₂) → obj coeq₁ ⇒ obj coeq₂ |
| 195 | + ⇒MapBetweenCoeqSq : (α : A₁ ⇒ A₂) (β : B₁ ⇒ B₂) (sq₁ : CommutativeSquare α f₁ f₂ β) (sq₂ : CommutativeSquare α g₁ g₂ β)(coeq₁ : Coequalizer f₁ g₁) → (coeq₂ : Coequalizer f₂ g₂) → CommutativeSquare β (arr coeq₁) (arr coeq₂) (⇒MapBetweenCoeq coeq₁ coeq₂) |
| 196 | + CoeqOfIsomorphicDiagram : (coeq : Coequalizer f g ) (a : A ≅ A') (b : B ≅ B') → Coequalizer (_≅_.from b ∘ f ∘ _≅_.to a) (_≅_.from b ∘ g ∘ _≅_.to a) |
| 197 | + module CoequalizerOfCoequalizer |
| 198 | + ``` |
| 199 | +* `Categories.Diagram.Colimit.Properties` |
| 200 | + ```agda |
| 201 | + build-colim : Coequalizer s t → Colimit F |
| 202 | + ``` |
| 203 | +* `Categories.Diagram.Cone.Properties` |
| 204 | + ```agda |
| 205 | + mapˡ : Functor (Cones F) (Cones (G ∘F F)) |
| 206 | + mapʳ : Functor (Cones F) (Cones (F ∘F G)) |
| 207 | + nat-map : Functor (Cones F) (Cones G) |
| 208 | + ``` |
| 209 | +* `Categories.Diagram.End.Properties` |
| 210 | + ```agda |
| 211 | + end-η : (F : Functor E (Functors (Product (Category.op C) C) D)) |
| 212 | + {{ef : ∫ F}} {{eg : ∫ G}} → end ef ⇒ end eg |
| 213 | + end-unique : (ω₁ ω₂ : ∫ F) → ∫.E ω₁ ≅ ∫.E ω₂ |
| 214 | + end-identity : (F : Bifunctor (Category.op C) C D) {{ef : ∫ F}} → end-η (idN {F = F}) ≈ id |
| 215 | + end-η-commute : {{ef : ∫ F}} {{eg : ∫ G}} (α : NaturalTransformation F G) |
| 216 | + (c : C.Obj) → ∫.dinatural.α eg c ∘ end-η α ≈ α .η (c , c) ∘ ∫.dinatural.α ef c |
| 217 | + end-η-resp-≈ : {{ef : ∫ F}} {{eg : ∫ G}} {α β : NaturalTransformation F G} → α ≃ⁿ β → |
| 218 | + end-η α ≈ end-η β |
| 219 | + end-resp-≅ : (F≃G : F ≃ⁱ G) {{ef : ∫ F}} {{eg : ∫ G}} → ∫.E ef ≅ ∫.E eg |
| 220 | + build-End : Equalizer D s t → ∫ P |
| 221 | +``` |
| 222 | +* `Categories.Diagram.Limit.Properties` |
| 223 | + ```agda |
| 224 | + build-lim : {OP : IndexedProductOf (Functor.₀ F)} |
| 225 | + {MP : IndexedProductOf λ f → Functor.₀ F (Morphism.cod f)} → |
| 226 | + Equalizer MP.⟨ (λ f → F.₁ (Morphism.arr f) ∘ OP.π (Morphism.dom f)) ⟩ |
| 227 | + MP.⟨ (λ f → OP.π (Morphism.cod f)) ⟩ → |
| 228 | + Lim.Limit F |
| 229 | + ``` |
| 230 | +* `Categories.Diagram.Pullback.Properties` |
| 231 | + ```agda |
| 232 | + module PullbackPartingLaw (ABDE : i ∘ f ≈ k ∘ h) (BCEF : j ∘ g ≈ l ∘ i) (pbᵣ : IsPullback g i j l) |
| 233 | + PullbackPartingLaw.leftPullback⇒bigPullback : IsPullback f h i k → IsPullback (g ∘ f) h j (l ∘ k) |
| 234 | + PullbackPartingLaw.bigPullback⇒leftPullback : IsPullback (g ∘ f) h j (l ∘ k) → IsPullback f h i k |
| 235 | +``` |
| 236 | +* `Categories.Function.Instance.Twisted` |
| 237 | + ```agda |
| 238 | + Twistⁿⁱ : ∀ {F G : Functor (C.op ×ᶜ C) D } → (F ≃ G) → Twist F ≃ Twist G |
| 239 | + ``` |
| 240 | +* `Categories.Functor.Properties` |
| 241 | + ```agda |
| 242 | + PreservesCoequalizers : Functor C D → Set |
| 243 | + PreservesCoequalizers {coeq : Coequalizer C f g} → IsCoequalizer D (F₁ f) (F₁ g) (F₁ (arr coeq)) |
| 244 | + ``` |
| 245 | +* `Categories.Monad.Strong` |
| 246 | + ```agda |
| 247 | + strength-natural-id : (f : X ⇒ Y) → t.η (Y , Z) ∘ (f ⊗₁ id) ≈ F₁ (f ⊗₁ id) ∘ t.η (X , Z) |
| 248 | + record RightStrength (V : Monoidal C) (M : Monad C) |
| 249 | + record RightStrongMonad (V : Monoidal C) |
| 250 | + ``` |
| 251 | +* `Categories.Morphism.Reasoning.Core` |
| 252 | + Introduction of new re-associators on compositions of 4 morphisms. |
| 253 | + Each successive association is given a Greek letter, from 'α' associated all |
| 254 | + the way to the left, to 'ε' associated all the way to the right. Then, |
| 255 | + 'assoc²XY' is the proof that X is equal to Y. Explicitly: |
| 256 | + ```agda |
| 257 | + α = ((i ∘ h) ∘ g) ∘ f |
| 258 | + β = (i ∘ (h ∘ g)) ∘ f |
| 259 | + γ = (i ∘ h) ∘ (g ∘ f) |
| 260 | + δ = i ∘ ((h ∘ g) ∘ f) |
| 261 | + ε = i ∘ (h ∘ (g ∘ f)) |
| 262 | + ``` |
| 263 | +* `Categories.Object.Duality` |
| 264 | + ```agda |
| 265 | + IndexedCoproductOf⇒coIndexedProductOf : IndexedCoproductOf P → IndexedProductOf P |
| 266 | + ``` |
| 267 | +* `Categories.Object.Product.Indexed.Properties` |
| 268 | + ```agda |
| 269 | + lowerAllProductsOf : ∀ j → AllProductsOf (i ⊔ j) → AllProductsOf i |
| 270 | + ``` |
0 commit comments