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