@@ -34,17 +34,22 @@ module _ {A : Poset o r} (𝒟 : Displacement-on A) where
3434 private
3535 module ⋉A (L : Poset o (o ⊔ r)) = LeftInvariantRightCentred L A ε
3636
37+ ⋉A-map-fst : ∀ {L N : Poset o (o ⊔ r)} → Strictly-monotone L N → Strictly-monotone (⋉A.poset L) (⋉A.poset N)
38+ ⋉A-map-fst f .hom (l , d) = f .hom l , d
39+ ⋉A-map-fst {L} f .pres-≤[]-equal {l1 , d1} {l2 , d2} =
40+ let module N⋉A = Reasoning (⋉A.poset _) in
41+ ∥-∥-rec (N⋉A.≤[]-is-hlevel 0 $ Poset.Ob-is-set (⋉A.poset L) _ _) λ where
42+ (⋉A.biased l1=l2 d1≤d2) →
43+ inc (⋉A.biased (ap (f .hom) l1=l2) d1≤d2) , λ p → ap₂ _,_ l1=l2 (ap snd p)
44+ (⋉A.centred l1≤l2 d1≤ε ε≤d2) →
45+ inc (⋉A.centred (pres-≤ f l1≤l2) d1≤ε ε≤d2) , λ p →
46+ ap₂ _,_ (injective-on-related f l1≤l2 (ap fst p)) (ap snd p)
47+
3748 McBride : Hierarchy-theory-on _
3849 McBride = ht where
3950 M : Functor (Strict-orders o (o ⊔ r)) (Strict-orders o (o ⊔ r))
4051 M .F₀ L = ⋉A.poset L
41- M .F₁ f .hom (l , d) = (f .hom l) , d
42- M .F₁ {L} {N} f .pres-≤[]-equal {l1 , d1} {l2 , d2} =
43- let module N⋉A = Reasoning (⋉A.poset N) in
44- ∥-∥-rec (N⋉A.≤[]-is-hlevel 0 $ Poset.Ob-is-set (⋉A.poset L) _ _) λ where
45- (⋉A.biased l1=l2 d1≤d2) → inc (⋉A.biased (ap (f .hom) l1=l2) d1≤d2) , λ p → ap₂ _,_ l1=l2 (ap snd p)
46- (⋉A.centred l1≤l2 d1≤ε ε≤d2) → inc (⋉A.centred (pres-≤ f l1≤l2) d1≤ε ε≤d2) , λ p →
47- ap₂ _,_ (injective-on-related f l1≤l2 (ap fst p)) (ap snd p)
52+ M .F₁ = ⋉A-map-fst
4853 M .F-id = trivial!
4954 M .F-∘ f g = trivial!
5055
@@ -57,35 +62,25 @@ module _ {A : Poset o r} (𝒟 : Displacement-on A) where
5762 mult .η L .hom ((l , x) , y) = l , (x ⊗ y)
5863 mult .η L .pres-≤[]-equal {(a1 , d1) , e1} {(a2 , d2) , e2} =
5964 let module L⋉A = Reasoning (⋉A.poset L) in
60- ∥-∥-rec (L⋉A.≤[]-is-hlevel 0 $ Poset.Ob-is-set (M .F₀ (M .F₀ L)) _ _) lemma where
61- lemma : ⋉A._≤'_ (M .F₀ L) ((a1 , d1) , e1) ((a2 , d2) , e2)
65+ ∥-∥-rec (L⋉A.≤[]-is-hlevel 0 $ Poset.Ob-is-set (M .F₀ (M .F₀ L)) _ _) mult-pres where
66+ mult-pres : ⋉A._≤'_ (M .F₀ L) ((a1 , d1) , e1) ((a2 , d2) , e2)
6267 → ⋉A._≤_ L (a1 , (d1 ⊗ e1)) (a2 , (d2 ⊗ e2))
6368 × ((a1 , (d1 ⊗ e1)) ≡ (a2 , (d2 ⊗ e2)) → ((a1 , d1) , e1) ≡ ((a2 , d2) , e2))
64- lemma (⋉A.biased ad1=ad2 e1≤e2) =
69+ mult-pres (⋉A.biased ad1=ad2 e1≤e2) =
6570 inc (⋉A.biased (ap fst ad1=ad2) (=+≤→≤ (ap (_⊗ e1) (ap snd ad1=ad2)) (left-invariant e1≤e2))) ,
6671 λ p i → ad1=ad2 i , injectiver-on-related e1≤e2 (ap snd p ∙ ap (_⊗ e2) (sym $ ap snd ad1=ad2)) i
67- lemma (⋉A.centred ad1≤ad2 e1≤ε ε≤e2) = ∥-∥-map lemma₂ ad1≤ad2 , lemma₃ where
68- d1⊗e1≤d1 : (d1 ⊗ e1) ≤ d1
69- d1⊗e1≤d1 = ≤+=→≤ (left-invariant e1≤ε) idr
70-
71- d2≤d2⊗e2 : d2 ≤ (d2 ⊗ e2)
72- d2≤d2⊗e2 = =+≤→≤ (sym idr) (left-invariant ε≤e2)
73-
74- lemma₂ : ⋉A._≤'_ L (a1 , d1) (a2 , d2)
75- → ⋉A._≤'_ L (a1 , (d1 ⊗ e1)) (a2 , (d2 ⊗ e2))
76- lemma₂ (⋉A.biased a1=a2 d1≤d2) = ⋉A.biased a1=a2 (≤-trans d1⊗e1≤d1 (≤-trans d1≤d2 d2≤d2⊗e2))
77- lemma₂ (⋉A.centred a1≤a2 d1≤ε ε≤d2) = ⋉A.centred a1≤a2 (≤-trans d1⊗e1≤d1 d1≤ε) (≤-trans ε≤d2 d2≤d2⊗e2)
78-
79- lemma₃ : (a1 , (d1 ⊗ e1)) ≡ (a2 , (d2 ⊗ e2)) → ((a1 , d1) , e1) ≡ ((a2 , d2) , e2)
80- lemma₃ p i = (a1=a2 i , d1=d2 i) , e1=e2 i where
81- a1=a2 : a1 ≡ a2
82- a1=a2 = ap fst p
72+ mult-pres (⋉A.centred ad1≤ad2 e1≤ε ε≤e2) = ∥-∥-map push-⊗ ad1≤ad2 , mult-inj where
73+ push-⊗ : ⋉A._≤'_ L (a1 , d1) (a2 , d2) → ⋉A._≤'_ L (a1 , (d1 ⊗ e1)) (a2 , (d2 ⊗ e2))
74+ push-⊗ (⋉A.biased a1=a2 d1≤d2) = ⋉A.biased a1=a2 (≤-trans (right-contract e1≤ε) (≤-trans d1≤d2 (right-expand ε≤e2)))
75+ push-⊗ (⋉A.centred a1≤a2 d1≤ε ε≤d2) = ⋉A.centred a1≤a2 (≤-trans (right-contract e1≤ε) d1≤ε) (≤-trans ε≤d2 (right-expand ε≤e2))
8376
77+ mult-inj : (a1 , (d1 ⊗ e1)) ≡ (a2 , (d2 ⊗ e2)) → ((a1 , d1) , e1) ≡ ((a2 , d2) , e2)
78+ mult-inj p i = (fst (p i) , d1=d2 i) , e1=e2 i where
8479 d2≤d1 : d2 ≤ d1
8580 d2≤d1 = begin-≤
86- d2 ≤⟨ d2≤d2⊗ e2 ⟩
81+ d2 ≤⟨ right-expand ε≤ e2 ⟩
8782 d2 ⊗ e2 ≐⟨ sym $ ap snd p ⟩
88- d1 ⊗ e1 ≤⟨ d1⊗ e1≤d1 ⟩
83+ d1 ⊗ e1 ≤⟨ right-contract e1≤ε ⟩
8984 d1 ≤∎
9085
9186 d1=d2 : d1 ≡ d2
0 commit comments