Martin Escardo. March 2022.
When is Σ discrete and/or totally separated? More generally what do
the isolated points of Σ look like?
This is, in particular, needed in order to prove things about compact
ordinals.
\begin{code}
{-# OPTIONS --without-K --exact-split --safe --auto-inline #-}
module TypeTopology.SigmaDiscreteAndTotallySeparated where
open import CoNaturals.GenericConvergentSequence
open import MLTT.Spartan
open import NotionsOfDecidability.Complemented
open import Taboos.WLPO
open import TypeTopology.CompactTypes
open import TypeTopology.DiscreteAndSeparated
open import TypeTopology.FailureOfTotalSeparatedness
open import TypeTopology.GenericConvergentSequenceCompactness
open import TypeTopology.PropTychonoff
open import TypeTopology.TotallySeparated
open import UF.Base
open import UF.Equiv
open import UF.FunExt
open import UF.Miscelanea
open import UF.Subsingletons renaming (⊤Ω to ⊤ ; ⊥Ω to ⊥)
Σ-isolated : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {x : X} {y : Y x}
→ is-isolated x
→ is-isolated y
→ is-isolated (x , y)
Σ-isolated {𝓤} {𝓥} {X} {Y} {x} {y} d e (x' , y') = g (d x')
where
g : decidable (x = x') → decidable ((x , y) = (x' , y'))
g (inl p) = f (e' y')
where
e' : is-isolated (transport Y p y)
e' = equivs-preserve-isolatedness (transport Y p) (transports-are-equivs p) y e
f : decidable (transport Y p y = y') → decidable ((x , y) = (x' , y'))
f (inl q) = inl (to-Σ-= (p , q))
f (inr ψ) = inr c
where
c : x , y = x' , y' → 𝟘
c r = ψ q
where
p' : x = x'
p' = ap pr₁ r
q' : transport Y p' y = y'
q' = from-Σ-=' r
s : p' = p
s = isolated-is-h-isolated x d p' p
q : transport Y p y = y'
q = transport (λ - → transport Y - y = y') s q'
g (inr φ) = inr (λ q → φ (ap pr₁ q))
Σ-is-discrete : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ }
→ is-discrete X
→ ((x : X) → is-discrete (Y x))
→ is-discrete (Σ Y)
Σ-is-discrete d e (x , y) (x' , y') = Σ-isolated (d x) (e x y) (x' , y')
×-isolated : {X : 𝓤 ̇ } {Y : 𝓥 ̇ } {x : X} {y : Y}
→ is-isolated x
→ is-isolated y
→ is-isolated (x , y)
×-isolated d e = Σ-isolated d e
×-is-discrete : {X : 𝓤 ̇ } {Y : 𝓥 ̇ }
→ is-discrete X
→ is-discrete Y
→ is-discrete (X × Y)
×-is-discrete d e = Σ-is-discrete d (λ _ → e)
×-isolated-left : {X : 𝓤 ̇ } {Y : 𝓥 ̇ } {x : X} {y : Y}
→ is-isolated (x , y)
→ is-isolated x
×-isolated-left {𝓤} {𝓥} {X} {Y} {x} {y} i x' = γ (i (x' , y))
where
γ : decidable ((x , y) = (x' , y)) → decidable (x = x')
γ (inl p) = inl (ap pr₁ p)
γ (inr ν) = inr (λ (q : x = x') → ν (to-×-= q refl))
×-isolated-right : {X : 𝓤 ̇ } {Y : 𝓥 ̇ } {x : X} {y : Y}
→ is-isolated (x , y)
→ is-isolated y
×-isolated-right {𝓤} {𝓥} {X} {Y} {x} {y} i y' = γ (i (x , y'))
where
γ : decidable ((x , y) = (x , y')) → decidable (y = y')
γ (inl p) = inl (ap pr₂ p)
γ (inr ν) = inr (λ (q : y = y') → ν (to-×-= refl q))
Σ-isolated-right : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {x : X} {y : Y x}
→ is-set X
→ is-isolated {_} {Σ Y} (x , y)
→ is-isolated y
Σ-isolated-right {𝓤} {𝓥} {X} {Y} {x} {y} s i y' = γ (i (x , y'))
where
γ : decidable ((x , y) = (x , y')) → decidable (y = y')
γ (inl p) =
inl (y =⟨ refl ⟩
transport Y refl y =⟨ ap (λ - → transport Y - y) (s refl (ap pr₁ p)) ⟩
transport Y (ap pr₁ p) y =⟨ (transport-ap Y pr₁ p)⁻¹ ⟩
transport (λ - → Y (pr₁ -)) p y =⟨ apd pr₂ p ⟩
y' ∎)
γ (inr ν) = inr (contrapositive (ap (x ,_)) ν)
\end{code}
Here we need a compactness assumption:
\begin{code}
Σ-isolated-left : {X : 𝓤 ̇ } {Y : X → 𝓥 ̇ } {x : X} {y : Y x}
→ ((x : X) → Compact (Y x))
→ is-isolated (x , y)
→ is-isolated x
Σ-isolated-left {𝓤} {𝓥} {X} {Y} {x} {y} σ i x' = γ δ
where
A : (y' : Y x') → 𝓤 ⊔ 𝓥 ̇
A y' = (x , y) = (x' , y')
d : complemented A
d y' = i (x' , y')
δ : decidable (Σ A)
δ = σ x' A d
γ : decidable (Σ A) → decidable (x = x')
γ (inl (y' , p)) = inl (ap pr₁ p)
γ (inr ν) = inr (λ (q : x = x') → ν (transport Y q y , to-Σ-= (q , refl)))
\end{code}
TODO. Is this assumption absolutely necessary?
Recall that we proved the following:
\begin{code}
private
recall : (X : 𝓤 ̇ ) (Y : X → 𝓥 ̇ )
→ is-discrete X
→ ((x : X) → is-totally-separated (Y x))
→ is-totally-separated (Σ Y)
recall = Σ-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
private
fe₀ = fe 𝓤₀ 𝓤₀
Σ-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 τ =
concrete-example.Failure 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
Even compact totally separated types fail to be closed under Σ:
\begin{code}
Σ-totally-separated-stronger-taboo :
(∀ {𝓤} {𝓥} (X : 𝓤 ̇ ) (Y : X → 𝓥 ̇ )
→ compact X
→ ((x : X) → compact (Y x))
→ is-totally-separated X
→ ((x : X) → is-totally-separated (Y x))
→ is-totally-separated (Σ Y))
→
¬¬ WLPO
Σ-totally-separated-stronger-taboo τ =
concrete-example.Failure fe
(τ ℕ∞ (λ u → u = ∞ → 𝟚)
(ℕ∞-compact fe₀)
(λ _ → compact∙-gives-compact (prop-tychonoff fe (ℕ∞-is-set fe₀) (λ _ → 𝟚-compact∙)))
(ℕ∞-is-totally-separated fe₀)
(λ u → Π-is-totally-separated fe₀ (λ _ → 𝟚-is-totally-separated)))
\end{code}