lib.graph-embeddings.Map.Face.md.
Version of Sunday, January 22, 2023, 10:42 PM
Powered by agda version 2.6.2.2-442c76b and pandoc 2.14.0.3
{-# OPTIONS --without-K --exact-split #-} module lib.graph-embeddings.Map.Face where open import foundations.Core open import lib.graph-embeddings.Map open import lib.graph-definitions.Graph open import lib.graph-homomorphisms.Hom open import lib.graph-homomorphisms.classes.EdgeInjective open import lib.graph-transformations.U open import lib.graph-classes.CyclicGraph open import lib.graph-classes.CyclicGraph.Stuff module _ {ℓ : Level}(G : Graph ℓ) where flip : ∀ {x y : Node G} → Edge (U G) x y → Edge (U G) y x flip (inl e) = inr e flip (inr e) = inl e open import foundations.Nat ℓ open Hom open cyclic-graph-stuff open import foundations.Cyclic {- A face must have in principle at least one edge if the graph contains an edge. This avoids to have empty faces everywhere. -} starFaceCond : (A : Graph ℓ) → (h : Hom A (U G)) → Type ℓ starFaceCond A h = (x : Node A) → ∥ Star G (α h x) ∥ → ∥ Star A x ∥ starFaceCond-is-prop : (A : Graph ℓ) → (h : Hom A (U G)) → isProp (starFaceCond A h) starFaceCond-is-prop A h = pi-is-prop (λ _ → pi-is-prop (λ _ → trunc-is-prop)) {- The graph homomorphism should preserve the order of edges in each faces. The edge ordering it is induced by the underlying cyclic graph. -} module _ (𝕄 : Map G) (A : Graph ℓ) (A↺ : CyclicGraph ℓ A) (h : Hom A (U G)) where faceCornersPreserved : Type ℓ faceCornersPreserved = (x : Node A) → (e₀ : Edge A (pred-↺ A A↺ x) x) → (e₁ : Edge A x (suc-↺ A A↺ x)) → Path {A = Star G (α h x)} (CyclicSet.φ (𝕄 ((α h x))) (α h (pred-↺ A A↺ x) , flip (β h _ _ e₀))) ((α h (suc-↺ A A↺ x) , β h _ _ e₁)) faceCornersPreserved-is-prop : isProp (faceCornersPreserved) faceCornersPreserved-is-prop = pi-is-prop (λ x → pi-is-prop (λ _ → pi-is-prop (λ _ → Star-is-set G (α h x) _ _))) -- For the record, corner-cond is the replacement -- of the following condition, called before, map-compatiblity. -- → Path {A = Star G (α h x)} -- (edge-after-suc-by-map A↺ h x 𝕄) -- (edge-in-star-with-pred A↺ h x)
-- Face' is nice but not that good for proving stuff. record Face (𝕄 : Map G) : Type (lsuc ℓ) where inductive constructor face field A : Graph ℓ A↺ : CyclicGraph ℓ A h : Hom A (U G) h-is-edge-inj : isEdgeInj h star-cond : starFaceCond A h corners-cond : faceCornersPreserved 𝕄 A A↺ h faceData : (𝕄 : Map G) → Type (lsuc ℓ) faceData 𝕄 = ∑[ A ∶ Graph ℓ ] (CyclicGraph ℓ A × Hom A (U G)) faceCond : (𝕄 : Map G) → faceData 𝕄 → Type ℓ faceCond 𝕄 (A , A↺ , h) = isEdgeInj h × starFaceCond A h × faceCornersPreserved 𝕄 A A↺ h faceCond-is-prop : ∀ {𝕄 : Map G} → (f : faceData 𝕄 ) → isProp (faceCond 𝕄 f) faceCond-is-prop {𝕄} (A , A↺ , h) = ∑-prop (∑-prop (being-edge-inj-is-prop h) (λ _ → starFaceCond-is-prop A h)) (λ _ → faceCornersPreserved-is-prop 𝕄 A A↺ h) Face' : (𝕄 : Map G) → Type (lsuc ℓ) Face' 𝕄 = ∑[ d ∶ faceData 𝕄 ] (faceCond 𝕄 d) Face'≃Face : (𝕄 : Map G) → Face' 𝕄 ≃ Face 𝕄 Face'≃Face 𝕄 = qinv-≃ (λ {((A , A↺ , h) , (p₁ , p₂) , p₃) → face A A↺ h p₁ p₂ p₃}) ((λ {(face A A↺ h p₁ p₂ p₃) → ((A , A↺ , h) , (p₁ , p₂) , p₃)} ) , (λ { (face A A↺ h p₁ p₂ p₃) → idp }) , λ {((A , A↺ , h) , (p₁ , p₂) , p₃) → idp}) Face'-Path-space : (𝕄 : Map G) → (F₁@(d₁ , c₁) F₂@(d₂ , c₂) : Face' 𝕄) → (F₁ ≡ F₂) ≃ (d₁ ≡ d₂) Face'-Path-space 𝕄 F₁@(d₁ , c₁) F₂@(d₂ , c₂) = simplify-pair (faceCond-is-prop {𝕄})
(2022-12-28)(57c278b4) Last updated: 2021-09-16 15:00:00 by jonathan.cubides (2022-07-06)(d3a4a8cf) minors by jonathan.cubides (2022-01-26)(4aef326b) [ reports ] added some revisions by jonathan.cubides (2021-12-20)(049db6a8) Added code of cubical experiments. by jonathan.cubides (2021-12-20)(961730c9) [ html ] regular update by jonathan.cubides (2021-12-20)(e0ef9faa) Fixed compilation and format, remove hidden parts by jonathan.cubides (2021-12-20)(5120e5d1) Added cubical experiment to the master by jonathan.cubides (2021-12-17)(828fdd0a) More revisions added for CPP by jonathan.cubides (2021-12-15)(0d6a99d8) Fixed some broken links and descriptions by jonathan.cubides (2021-12-15)(662a1f2d) [ .gitignore ] add by jonathan.cubides (2021-12-15)(0630ce66) Minor fixes by jonathan.cubides (2021-12-13)(04f10eba) Fixed a lot of details by jonathan.cubides (2021-12-10)(24195c9f) [ .gitignore ] ignore .zip and arxiv related files by jonathan.cubides (2021-12-09)(538d2859) minor fixes before dinner by jonathan.cubides (2021-12-09)(36a1a69f) [ planar.pdf ] w.i.p revisions to share on arxiv first by jonathan.cubides