Law
Martin Escardo, 2017, written in Agda November 2019. If X is discrete then (X + π) Γ Aut X β Aut (X + π), where Aut X := (X β X) is the type of automorphisms of the type X. This is proved by Danielsson in http://www.cse.chalmers.se/~nad/listings/equality/Function-universe.html#[β€βββ€β]β[β€βΓβ] See also Coquand's https://github.com/simhu/cubical/blob/master/examples/finite.cub and our https://www.cs.bham.ac.uk/~mhe/TypeTopology/PlusOneLC.html More generally, for an arbitrary type X, we prove that co-derived-set (X + π) Γ Aut X β Aut (X + π), where the co-derived-set of a type is the subtype of isolated points. In particular, if X is discrete (all its points are isolated), then we get the "factorial equivalence" (X + π) Γ Aut X β Aut (X + π). On the other hand, if X is perfect (has no isolated points), then Aut X β Aut (X + π), This is the case, for example, if X is the circle SΒΉ. But if P is a proposition, then P + π β Aut (P + π).{-# OPTIONS --safe --without-K #-} open import UF.FunExtWe need functional extensionality (but not propositional extensionality or univalence).module Factorial.Law (fe : FunExt) where open import Factorial.Swap open import MLTT.Plus-Properties open import MLTT.Spartan open import UF.Base open import UF.DiscreteAndSeparated open import UF.Embeddings open import UF.Equiv open import UF.Equiv-FunExt open import UF.EquivalenceExamples open import UF.Retracts open import UF.Subsingletons open import UF.SetsWe refer to the set of isolated points as the co derived set (for complement of the derived set, in the sense of Cantor, consisting of the limit points, i.e. non-isolated points). Recall that a point x : X is isolated if the identity type x οΌ y is decidable for every y : X.co-derived-set : π€ Μ β π€ Μ co-derived-set X = Ξ£ x κ X , is-isolated x cods-embedding : (X : π€ Μ ) β co-derived-set X β X cods-embedding X = prβ cods-embedding-is-embedding : (X : π€ Μ ) β is-embedding (cods-embedding X) cods-embedding-is-embedding X = prβ-is-embedding (being-isolated-is-prop fe) cods-embedding-is-equiv : (X : π€ Μ ) β is-discrete X β is-equiv (cods-embedding X) cods-embedding-is-equiv X d = prβ-is-equiv X is-isolated (Ξ» x β pointed-props-are-singletons (d x) (being-isolated-is-prop fe x)) β-cods : (X : π€ Μ ) β is-discrete X β co-derived-set X β X β-cods X d = cods-embedding X , cods-embedding-is-equiv X dThe co derived set of any type is indeed a set.cods-is-set : (X : π€ Μ ) β is-set (co-derived-set X) cods-is-set X {x , i} = isolated-points-are-h-isolated (x , i) (embeddings-reflect-isolatedness (cods-embedding X) (cods-embedding-is-embedding X) (x , i) i)Recall that a type is perfect if it has no isolated points.perfect-coderived-empty : (X : π€ Μ ) β is-perfect X β is-empty (co-derived-set X) perfect-coderived-empty X i (x , j) = i (x , j) perfect-coderived-singleton : (X : π€ Μ ) β is-perfect X β is-singleton (co-derived-set (X + π {π₯})) perfect-coderived-singleton X i = (inr β , new-point-is-isolated) , Ξ³ where Ξ³ : (c : co-derived-set (X + π)) β inr β , new-point-is-isolated οΌ c Ξ³ (inl x , j) = π-elim (i (x , a)) where a : is-isolated x a = embeddings-reflect-isolatedness inl (inl-is-embedding X π) x j Ξ³ (inr β , j) = to-Ξ£-οΌ' (being-isolated-is-prop fe (inr β) new-point-is-isolated j)For a type A, denote by A' the co-derived set of A. Then we get a map (Y+π)' Γ (X β Y) β (X+π β Y+π), where the choice of isolated point a:Y+π controls which equivalence X+πβY+π we get from the equivalence f: XβY: f+π swap (a , inr (β)) X+π ----> Y+π --------------------> Y+π The claim is that the above map is an equivalence. We construct/prove this in four steps: (1) (X β Y) β Ξ£ f κ X+π β Y+π , f (inr β) οΌ inr β Hence (2) (Y+π)' Γ (X β Y) β (Y+π)' Γ Ξ£ f κ X+π β Y+π , f (inr β) οΌ inr β Also (3) (Y+π)' Γ (Ξ£ f κ X+π β Y+π , f (inr β) οΌ inr β) β (X+π β Y+π) And therefore (4) (Y+π)' Γ (X β Y) β (X+π β Y+π)module factorial-steps {π€ π₯ : Universe} (π¦ π£ : Universe) (X : π€ Μ ) (Y : π₯ Μ ) where X+π = X + π {π¦} Y+π = Y + π {π£}In the following, we use the fact that if f (inr β) οΌ inr β for a function, f : X+π β Y+π, then f (inl x) is of the form inl y (inl-preservation).stepβ : (f : X+π β Y+π) β f (inr β) οΌ inr β β is-equiv f β Ξ£ f' κ (X β Y), is-equiv f' Γ (f βΌ +functor f' unique-to-π) stepβ f p i = Ξ³ (equivs-are-qinvs f i) where Ξ³ : qinv f β Ξ£ f' κ (X β Y), is-equiv f' Γ (f βΌ +functor f' unique-to-π) Ξ³ (g , Ξ· , Ξ΅) = f' , qinvs-are-equivs f' (g' , Ξ·' , Ξ΅') , h where f' : X β Y f' x = prβ (inl-preservation f p (sections-are-lc f (g , Ξ·)) x) a : (x : X) β f (inl x) οΌ inl (f' x) a x = prβ (inl-preservation f p (sections-are-lc f (g , Ξ·)) x) q = g (inr β) οΌβ¨ (ap g p)β»ΒΉ β© g (f (inr β)) οΌβ¨ Ξ· (inr β) β© inr β β g' : Y β X g' x = prβ (inl-preservation g q (sections-are-lc g (f , Ξ΅)) x) b : (y : Y) β g (inl y) οΌ inl (g' y) b y = prβ (inl-preservation g q (sections-are-lc g (f , Ξ΅)) y) Ξ·' : g' β f' βΌ id Ξ·' x = inl-lc (inl (g' (f' x)) οΌβ¨ (b (f' x))β»ΒΉ β© g (inl (f' x)) οΌβ¨ (ap g (a x))β»ΒΉ β© g (f (inl x)) οΌβ¨ Ξ· (inl x) β© inl x β) Ξ΅' : f' β g' βΌ id Ξ΅' y = inl-lc (inl (f' (g' y)) οΌβ¨ (a (g' y))β»ΒΉ β© f (inl (g' y)) οΌβ¨ (ap f (b y))β»ΒΉ β© f (g (inl y)) οΌβ¨ Ξ΅ (inl y) β© inl y β) h : f βΌ +functor f' unique-to-π h (inl x) = a x h (inr β) = p stepβ : (X β Y) β (Ξ£ f κ X+π β Y+π , β f β (inr β) οΌ inr β) stepβ = qinveq Ο (Ξ³ , Ξ· , Ξ΅) where a : (g : X β Y) β qinv g β Y+π β X+π a g (g' , Ξ· , Ξ΅) = +functor g' unique-to-π b : (g : X β Y) (q : qinv g) β a g q β +functor g unique-to-π βΌ id b g (g' , Ξ· , Ξ΅) (inl x) = ap inl (Ξ· x) b g (g' , Ξ· , Ξ΅) (inr β) = refl c : (g : X β Y) (q : qinv g) β +functor g unique-to-π β a g q βΌ id c g (g' , Ξ· , Ξ΅) (inl y) = ap inl (Ξ΅ y) c g (g' , Ξ· , Ξ΅) (inr β) = refl d : (g : X β Y) β qinv g β is-equiv (+functor g unique-to-π) d g q = qinvs-are-equivs (+functor g unique-to-π) (a g q , b g q , c g q) Ο : (X β Y) β Ξ£ e κ X+π β Y+π , β e β (inr β) οΌ inr β Ο (g , i) = (+functor g unique-to-π , d g (equivs-are-qinvs g i)) , refl Ξ³ : (Ξ£ e κ X+π β Y+π , β e β (inr β) οΌ inr β) β (X β Y) Ξ³ ((f , i) , p) = prβ (stepβ f p i) , prβ (prβ (stepβ f p i)) Ξ· : Ξ³ β Ο βΌ id Ξ· (g , i) = to-Ξ£-οΌ (refl , being-equiv-is-prop fe g _ i) Ξ΅ : Ο β Ξ³ βΌ id Ξ΅ ((f , i) , p) = to-Ξ£-οΌ (to-subtype-οΌ (being-equiv-is-prop fe) r , isolated-points-are-h-isolated (f (inr β)) (equivs-preserve-isolatedness f i (inr β) new-point-is-isolated) _ p) where s : f βΌ prβ (prβ ((Ο β Ξ³) ((f , i) , p))) s (inl x) = prβ (prβ (stepβ f p i)) (inl x) s (inr β) = p r : prβ (prβ ((Ο β Ξ³) ((f , i) , p))) οΌ f r = dfunext (fe _ _) (Ξ» z β (s z)β»ΒΉ) stepβ : co-derived-set (Y+π) Γ (X β Y) β co-derived-set (Y+π) Γ (Ξ£ e κ X+π β Y+π , β e β (inr β) οΌ inr β) stepβ = Γ-cong (β-refl (co-derived-set (Y+π))) stepβ stepβ : (co-derived-set (Y+π) Γ (Ξ£ e κ X+π β Y+π , β e β (inr β) οΌ inr β)) β (X+π β Y+π) stepβ = qinveq Ο (Ξ³ , Ξ· , Ξ΅) where A = co-derived-set (Y+π) Γ (Ξ£ e κ X+π β Y+π , β e β (inr β) οΌ inr β) B = X+π β Y+π Ο : A β B Ο ((t , i) , ((f , j) , p)) = g , k where g : X+π β Y+π g = swap t (inr β) i new-point-is-isolated β f k : is-equiv g k = β-is-equiv-abstract j (swap-is-equiv t (inr β) i new-point-is-isolated) Ξ³ : B β A Ξ³ (g , k) = (t , i) , ((f , j) , p) where t : Y+π t = g (inr β) i : is-isolated t i = equivs-preserve-isolatedness g k (inr β) new-point-is-isolated f : X+π β Y+π f = swap t (inr β) i new-point-is-isolated β g j : is-equiv f j = β-is-equiv-abstract k (swap-is-equiv t (inr β) i new-point-is-isolated) p : f (inr β) οΌ inr β p = swap-equationβ t (inr β) i new-point-is-isolated Ξ· : Ξ³ β Ο βΌ id Ξ· ((t , i) , ((f , j) , p)) = s where g : X+π β Y+π g = swap t (inr β) i new-point-is-isolated β f k : is-equiv g k = β-is-equiv-abstract j (swap-is-equiv t (inr β) i new-point-is-isolated) t' : Y+π t' = g (inr β) i' : is-isolated t' i' = equivs-preserve-isolatedness g k (inr β) new-point-is-isolated q : t' οΌ t q = g (inr β) οΌβ¨ a β© swap t (inr β) i new-point-is-isolated (inr β) οΌβ¨ b β© t β where a = ap (swap t (inr β) i new-point-is-isolated) p b = swap-equationβ t (inr β) i new-point-is-isolated r : (t' , i') οΌ (t , i) r = to-subtype-οΌ (being-isolated-is-prop fe) q f' : X+π β Y+π f' = swap t' (inr β) i' new-point-is-isolated β g j' : is-equiv f' j' = β-is-equiv-abstract k (swap-is-equiv t' (inr β) i' new-point-is-isolated) h : f' βΌ f h z = swap t' (inr β) i' new-point-is-isolated (swap t (inr β) i new-point-is-isolated (f z)) οΌβ¨ a β© swap t (inr β) i new-point-is-isolated (swap t (inr β) i new-point-is-isolated (f z)) οΌβ¨ b β© f z β where Ο : co-derived-set (Y+π) β Y+π Ο (t' , i') = swap t' (inr β) i' new-point-is-isolated (swap t (inr β) i new-point-is-isolated (f z)) a = ap Ο r b = swap-involutive t (inr β) i new-point-is-isolated (f z) m : is-isolated (f (inr β)) m = equivs-preserve-isolatedness f j (inr β) new-point-is-isolated n : {t : Y+π} β is-prop (f (inr β) οΌ t) n = isolated-points-are-h-isolated (f (inr β)) m o : f' , j' οΌ f , j o = to-subtype-οΌ (being-equiv-is-prop fe) (dfunext (fe _ _) h) p' : f' (inr β) οΌ inr β p' = swap-equationβ t' (inr β) i' new-point-is-isolated s : ((t' , i') , ((f' , j') , p')) οΌ ((t , i) , ((f , j) , p)) s = to-Γ-οΌ r (to-Ξ£-οΌ (o , n top' p)) where top' = transport (Ξ» - β β - β (inr β) οΌ inr β) o p' Ξ΅ : Ο β Ξ³ βΌ id Ξ΅ (g , k) = r where z : Y+π z = g (inr β) i : is-isolated z i = equivs-preserve-isolatedness g k (inr β) new-point-is-isolated h : (swap (g (inr β)) (inr β) i new-point-is-isolated) β (swap (g (inr β)) (inr β) i new-point-is-isolated) β g βΌ g h = swap-involutive z (inr β) i new-point-is-isolated β g r : Ο (Ξ³ (g , k)) οΌ (g , k) r = to-Ξ£-οΌ (dfunext (fe _ _) h , being-equiv-is-prop fe g _ k) stepβ : co-derived-set (Y+π) Γ (X β Y) β (X+π β Y+π) stepβ = stepβ β stepβThis is the end of the submodule, which has the following corollaries:general-factorial : (X : π€ Μ ) β co-derived-set (X + π) Γ Aut X β Aut (X + π) general-factorial {π€} X = factorial-steps.stepβ π€ π€ X X discrete-factorial : (X : π€ Μ ) β is-discrete X β (X + π) Γ Aut X β Aut (X + π) discrete-factorial X d = Ξ³ where i = Γ-cong (β-sym (β-cods (X + π) ( +-is-discrete d π-is-discrete))) (β-refl (Aut X)) Ξ³ = (X + π) Γ Aut X ββ¨ i β© co-derived-set (X + π) Γ Aut X ββ¨ general-factorial X β© Aut (X + π) β perfect-factorial : (X : π€ Μ ) β is-perfect X β Aut X β Aut (X + π) perfect-factorial {π€} X i = Aut X ββ¨ I β© π Γ Aut X ββ¨ II β© co-derived-set (X + π) Γ Aut X ββ¨ III β© Aut (X + π) β where I = β-sym (π-lneutral {π€} {π€}) II = Γ-cong (β-sym (singleton-β-π (perfect-coderived-singleton X i))) (β-refl (Aut X)) III = general-factorial XExercise. Conclude that the map (-)+π : π€ Μ β π€ Μ, although it is left-cancellable, is not an embedding, but that it is an embedding when restricted to perfect types. We should not forget the (trivial) "base case":factorial-base : π {π₯} β Aut (π {π€}) factorial-base = f , ((g , Ξ·) , (g , Ξ΅)) where f : π β Aut π f _ = id , ((id , (Ξ» _ β refl)) , (id , (Ξ» _ β refl))) g : Aut π β π g = unique-to-π Ξ· : (e : Aut π) β f (g e) οΌ e Ξ· _ = to-subtype-οΌ (being-equiv-is-prop fe) (dfunext (fe _ _) (Ξ» y β π-elim y)) Ξ΅ : (x : π) β g (f x) οΌ x Ξ΅ β = reflAdded 21st November 2022.Aut-of-prop-is-singleton : (P : π€ Μ ) β is-prop P β is-singleton (Aut P) Aut-of-prop-is-singleton P i = β-refl P , h where h : (e : P β P) β β-refl P οΌ e h (f , _) = to-subtype-οΌ (being-equiv-is-prop fe) (dfunext (fe _ _) (Ξ» p β i p (f p))) factorial-base-generalized : (P : π€ Μ ) β is-prop P β π {π₯} β Aut P factorial-base-generalized P i = π-β-singleton (Aut-of-prop-is-singleton P i) propositional-factorial : (P : π€ Μ ) β is-prop P β (P + π) β Aut (P + π) propositional-factorial {π€} P i = P + π ββ¨ I β© (P + π) Γ (π {π€}) ββ¨ II β© (P + π) Γ Aut P ββ¨ III β© Aut (P + π) β where I = β-sym π-rneutral II = Γ-cong (β-refl (P + π)) (factorial-base-generalized P i) III = discrete-factorial P (props-are-discrete i)Is the converse also true?