lib.graph-definitions.Graph.EquivalencePrinciple.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-definitions.Graph.EquivalencePrinciple where open import foundations.Core open import lib.graph-definitions.Graph open import lib.graph-homomorphisms.Hom open import lib.graph-homomorphisms.classes.Isomorphisms open import lib.graph-relations.Isomorphic
module EquivPrinciple {ℓ : Level} (G H : Graph ℓ) where private F₁ : (X : Type ℓ) → Type (lsuc ℓ) F₁ X = (X → X → Type ℓ) F₂ : (X : Type ℓ)(R : (x y : X) → Type ℓ) → Type ℓ F₂ X R = (x y : X) → (R x y) is-set
nG = Node G nH = Node H eG = Edge G eH = Edge H nG-set = Node-is-set G nH-set = Node-is-set H eG-set = Edge-is-set G eH-set = Edge-is-set H
equiv-principle : (G ≡ H) ≃ (G ≅ H) equiv-principle = begin≃ (G ≡ H) ≃⟨ i ⟩ ∑[ α ∶ nG ≡ nH ] ∑[ β ∶ tr F₁ α eG ≡ eH ] (tr isSet α nG-set ≡ nH-set) × (tr₂ F₂ α β eG-set ≡ eH-set) ≃⟨ ii ⟩ ∑[ α ] (tr F₁ α eG ≡ eH) ≃⟨ sigma-preserves iii ⟩ ∑[ α ] (∀ x y → eG x y ≡ eH (coe α x) (coe α y)) ≃⟨ sigma-preserves iv ⟩ ∑[ α ] (∀ x y → eG x y ≃ eH (coe α x) (coe α y)) ≃⟨ v ⟩ ∑[ α ∶ nG ≃ nH ] (∀ x y → eG x y ≃ eH ((α ∙) x) ((α ∙) y)) ≃⟨⟩ (G ≅ H) ≃∎ where open import foundations.UnivalenceAxiom i : (G ≡ H) ≃ (Σ[ α ∶ nG ≡ nH ] Σ[ β ∶ tr F₁ α (eG) ≡ eH ] (tr isSet α (nG-set) ≡ nH-set) × (tr₂ F₂ α β (eG-set) ≡ (eH-set))) i = ≃-sym (qinv-≃ (λ { (idp , idp , idp , idp) → idp}) ( (λ {idp → idp , idp , idp , idp }) , (λ { idp → idp}) , λ { (idp , idp , idp , idp) → idp} )) ii = ≃-sym $ qinv-≃ -- functions: (λ {(α , β ) → α , β , set-is-prop _ _ , pi-is-prop (λ a → pi-is-prop (λ b → set-is-prop)) _ (eH-set) }) ((λ { (α , β , _) → α , β }) -- homotopies: , ((λ {(α , (β , _)) → pair= (idp , pair= (idp , ispropA×B (prop-is-set (pi-is-prop (λ x → pi-is-prop (λ y → prop-is-prop))) _ (nH-set)) (prop-is-set (pi-is-prop (λ x → pi-is-prop (λ y → set-is-prop))) _ (eH-set)) _ _))} ), λ {(a , b) → idp})) iii : (α : nG ≡ nH) → (tr F₁ α (eG) ≡ eH) ≃ ((x y : nG) → eG x y ≡ eH (coe α x) (coe α y)) iii idp = (eG ≡ eH) ≃⟨ eqFunExt ⟩ (∀ x → (eG x ≡ eH x)) ≃⟨ pi-equivalence (λ w → eqFunExt) ⟩ (∀ x y → (eG x y ≡ eH x y)) ≃∎ where open import foundations.FunExtAxiom iv : (α : nG ≡ nH) → ((x y : nG) → eG x y ≡ eH (coe α x) (coe α y)) ≃ ((x y : nG) → eG x y ≃ eH (coe α x) (coe α y)) iv idp = pi-equivalence $ λ x → pi-equivalence $ λ y → eqvUnivalence v = ≃-sym (sigma-preserves-≃ eqvUnivalence)
-- Other alias ≡-≃-≅ : (G ≡ H) ≃ (G ≅ H) ≡-≃-≅ = equiv-principle ≡-from-iso : (G ≅ H) → (G ≡ H) ≡-from-iso = rapply equiv-principle ≡-→-≅ : (G ≡ H) → (G ≅ H) ≡-→-≅ = apply equiv-principle
computation-rule₁ : (e : G ≅ H) → (≡-≃-≅ ∙→) ((≡-≃-≅ ∙←) e) ≡ e computation-rule₁ e = lrmap-inverse-h {A = G ≡ H} {B = G ≅ H} ≡-≃-≅ e
computation-rule₂ : (e : G ≡ H) → (≡-≃-≅ ∙←) ((≡-≃-≅ ∙→) e) ≡ e computation-rule₂ e = rlmap-inverse-h {A = G ≡ H} {B = G ≅ H} ≡-≃-≅ e -- NOTE: If I replace ≡-≃-≅ ∙→ by ≡-≃-≅, this doesn't typecheck, why not?
≡-≡-≅ : (G ≡ H) ≡ ↑ _ (G ≅ H) ≡-≡-≅ = ua (≃-trans equiv-principle (lifting-equivalence _)) where open import foundations.UnivalenceAxiom
Isomorphic graphs hold the same propositional properties.
leibniz : {ℓ : Level} (G H : Graph ℓ) → G ≅ H → (P : Graph ℓ → Type ℓ) → (P G → P H) leibniz G H G≡H P PG = tr P (rapply (equiv-principle G H) G≡H) PG where open EquivPrinciple
(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