Martin Escardo. March 2022.
When is Ξ£ totally separated?
This is, in particular, needed in order to prove things about compact
ordinals.
\begin{code}
{-# OPTIONS --safe --without-K #-}
module TypeTopology.SigmaTotallySeparated where
open import CoNaturals.Type
open import MLTT.Spartan
open import Taboos.WLPO
open import TypeTopology.CompactTypes
open import TypeTopology.FailureOfTotalSeparatedness
open import TypeTopology.GenericConvergentSequenceCompactness
open import TypeTopology.MicroTychonoff
open import TypeTopology.TotallySeparated
open import UF.Base
open import UF.DiscreteAndSeparated
open import UF.FunExt
open import UF.Subsingletons
\end{code}
Recall that we proved the following:
\begin{code}
_ : (X : π€ Μ ) (Y : X β π₯ Μ )
β is-discrete X
β ((x : X) β is-totally-separated (Y x))
β is-totally-separated (Ξ£ Y)
_ = Ξ£-is-totally-separated-if-index-type-is-discrete
\end{code}
We now derive a constructive taboo from the assumption that totally
separated types are closed under Ξ£.
\begin{code}
module _ (feβ : funext π€β π€β) where
Ξ£-totally-separated-taboo
: (β {π€} {π₯} (X : π€ Μ ) (Y : X β π₯ Μ )
β is-totally-separated X
β ((x : X) β is-totally-separated (Y x))
β is-totally-separated (Ξ£ Y))
β ¬¬ WLPO
Ξ£-totally-separated-taboo Ο =
βββ-is-not-totally-separated-in-general feβ
(Ο ββ (Ξ» u β u οΌ β β π)
(ββ-is-totally-separated feβ)
(Ξ» u β Ξ -is-totally-separated feβ (Ξ» _ β π-is-totally-separated)))
\end{code}
Remark. Β¬ WLPO is equivalent to a continuity principle that is
compatible with constructive mathematics and with MLTT. Therefore its
negatation is not provable. See
Constructive decidability of classical continuity.
Mathematical Structures in Computer Science
Volume 25 , Special Issue 7: Computing with Infinite Data:
Topological and Logical Foundations Part 1 , October 2015 , pp. 1578-1589
https://doi.org/10.1017/S096012951300042X
and the module TypeTopology.DecidabilityOfNonContinuity.
Even compact totally separated types fail to be closed under Ξ£:
\begin{code}
Ξ£-totally-separated-stronger-taboo
: (β {π€} {π₯} (X : π€ Μ ) (Y : X β π₯ Μ )
β is-compact X
β ((x : X) β is-compact (Y x))
β is-totally-separated X
β ((x : X) β is-totally-separated (Y x))
β is-totally-separated (Ξ£ Y))
β ¬¬ WLPO
Ξ£-totally-separated-stronger-taboo Ο =
βββ-is-not-totally-separated-in-general feβ
(Ο ββ (Ξ» u β u οΌ β β π)
(ββ-compact feβ)
(Ξ» _ β compactβ-types-are-compact
(micro-tychonoff feβ (ββ-is-set feβ) (Ξ» _ β π-is-compactβ)))
(ββ-is-totally-separated feβ)
(Ξ» u β Ξ -is-totally-separated feβ (Ξ» _ β π-is-totally-separated)))
\end{code}
Added 20th December 2023. Sums are not closed under total
separatedness in general, as discussed above, but we have the
following useful special case.
\begin{code}
open import Notation.CanonicalMap hiding ([_])
Ξ£-indexed-by-ββ-is-totally-separated-if-family-at-β-is-prop
: funext π€β π€β
β (A : ββ β π₯ Μ )
β ((u : ββ) β is-totally-separated (A u))
β is-prop (A β)
β is-totally-separated (Ξ£ A)
Ξ£-indexed-by-ββ-is-totally-separated-if-family-at-β-is-prop
feβ A A-is-ts Aβ-is-prop {u , a} {v , b} Ο = IV
where
_ : (p : Ξ£ A β π) β p (u , a) οΌ p (v , b)
_ = Ο
Οβ : (q : ββ β π) β q u οΌ q v
Οβ q = Ο (Ξ» (w , _) β q w)
Iβ : u οΌ v
Iβ = ββ-is-totally-separated feβ Οβ
a' : A v
a' = transport A Iβ a
I : (u , a) οΌ[ Ξ£ A ] (v , a')
I = to-Ξ£-οΌ (Iβ , refl)
II : (r : A v β π) β r a' οΌ r b
II r = IIβ
where
IIβ : (n : β) β v οΌ ΞΉ n β r a' οΌ r b
IIβ n refl = e
where
p' : ((w , c) : Ξ£ A) β is-decidable (ΞΉ n οΌ w) β π
p' (w , c) (inl e) = r (transportβ»ΒΉ A e c)
p' (w , c) (inr Ξ½) = β
p'-property : ((w , c) : Ξ£ A) (d d' : is-decidable (ΞΉ n οΌ w))
β p' (w , c) d οΌ p' (w , c) d'
p'-property (w , c) (inl e) (inl e') = ap (Ξ» - β r (transportβ»ΒΉ A - c))
(ββ-is-set feβ e e')
p'-property (w , c) (inl e) (inr Ξ½') = π-elim (Ξ½' e)
p'-property (w , c) (inr Ξ½) (inl e') = π-elim (Ξ½ e')
p'-property (w , c) (inr Ξ½) (inr Ξ½') = refl
p : Ξ£ A β π
p (w , c) = p' (w , c) (finite-isolated feβ n w)
e = r a' οΌβ¨reflβ©
p' (v , a') (inl refl) οΌβ¨ eβ β©
p (v , a') οΌβ¨ eβ β©
p (u , a) οΌβ¨ eβ β©
p (v , b) οΌβ¨ eβ β©
p' (v , b) (inl refl) οΌβ¨reflβ©
r b β
where
eβ = p'-property (v , a') (inl refl) (finite-isolated feβ n v)
eβ = ap p (I β»ΒΉ)
eβ = Ο p
eβ = (p'-property (v , b) (inl refl) (finite-isolated feβ n v))β»ΒΉ
IIβ : v οΌ β β r a' οΌ r b
IIβ refl = ap r (Aβ-is-prop a' b)
IIβ : Β¬ (r a' β r b)
IIβ Ξ½ = IIβ (not-finite-is-β feβ IIβ)
where
IIβ : (n : β) β v β ΞΉ n
IIβ n = contrapositive (IIβ n) Ξ½
IIβ : v β β
IIβ = contrapositive IIβ Ξ½
IIβ : r a' οΌ r b
IIβ = π-is-¬¬-separated (r a') (r b) IIβ
III : a' οΌ b
III = A-is-ts v II
IV : (u , a) οΌ[ Ξ£ A ] (v , b)
IV = to-Ξ£-οΌ (Iβ , III)
\end{code}
Added 21st December 2023. A modification of the above proof gives the
following.
\begin{code}
open import UF.Embeddings
subtype-is-totally-separated''
: {X : π€ Μ } {Y : π₯ Μ }
(f : X β Y)
β is-totally-separated Y
β left-cancellable f
β is-totally-separated X
subtype-is-totally-separated'' {π€} {π₯} {X} {Y} f Y-is-ts f-lc {x} {x'} Ο = II
where
_ : (p : X β π) β p x οΌ p x'
_ = Ο
Οβ : (q : Y β π) β q (f x) οΌ q (f x')
Οβ q = Ο (q β f)
I : f x οΌ f x'
I = Y-is-ts Οβ
II : x οΌ x'
II = f-lc I
subtype-is-totally-separated'
: {X : π€ Μ } {Y : π₯ Μ }
(f : X β Y)
β is-totally-separated Y
β is-embedding f
β is-totally-separated X
subtype-is-totally-separated' f Y-is-ts f-is-emb =
subtype-is-totally-separated'' f Y-is-ts (embeddings-are-lc f f-is-emb)
subtype-is-totally-separated
: {X : π€ Μ } (A : X β π₯ Μ )
β is-totally-separated X
β ((x : X) β is-prop (A x))
β is-totally-separated (Ξ£ A)
subtype-is-totally-separated A X-is-ts A-is-prop-valued =
subtype-is-totally-separated'' prβ X-is-ts (prβ-lc (Ξ» {x} β A-is-prop-valued x))
\end{code}