TOPOLOGY

TOPOLOGY

This page presents basic notions from classical topology and measure theory formalized in Cubical Homotopy Type Theory, including propositional predicates, power sets, and the Borel -algebra constructed via W-types.

Propositional Predicates and Power Sets

We work in universe and define propositional predicates and power sets.

def Path(A : U) (x y : A) := PathP (<_> A) x y def isProp₁ (A : U) := Π (a b : A), Path₁ A a b def isSet₁ (A : U) := Π (a b : A) (x y : Path₁ A a b), Path(Path₁ A a b) x y

The power set is defined as the function space , where .

def Prop := U 𝟐 def(X: U) := X Prop

Basic Operations on Subsets

def(X: U) : ℙ X := λ (_: X) (_: U), false def total (X: U) : ℙ X := λ (_: X) (_: U), true def(X: U) (el: X) (set: ℙ X) : U:= Path(U 𝟐) (set el) (λ (_: U), true) def(X: U) (el: X) (set: ℙ X) : U:= Path(U 𝟐) (set el) (λ (_: U), false) def(X: U) (A B: ℙ X) := Π (x: X), (∈ X x A) × (∈ X x B) def(X: U) : ℙ X ℙ X := λ (h : ℙ X), λ (x: X) (Y: U), not (h x Y) def(X: U) : ℙ X ℙ X ℙ X := λ (h1 h2 : ℙ X), λ (x: X) (Y: U), or (h1 x Y) (h2 x Y) def(X: U) : ℙ X ℙ X ℙ X := λ (h1 h2 : ℙ X), λ (x: X) (Y: U), and (h1 x Y) (h2 x Y)

Properties

def isSet-ℙ (X: U) : isSet₁ (ℙ X) := isSetPi₁ X (λ (_: X), Prop) (λ (_: X), isSetPi₁' U (λ (_: U), 𝟐) (λ (_: U), boolset))

Borel σ-Algebra

The Borel -algebra on a type is constructed as the smallest -algebra containing a given collection of generators (open sets). We encode Borel sets using W-types (well-founded trees) with four kinds of constructors: base generators, empty set, complement, and countable union.

Borel codes as W-type

axiom Generator (A : U) : U axiom isOpen (A : U) (g : Generator A) (a : A) : U def Borel-Shape (A : U) : U := + (Generator A) 𝟑 def Borel-Pos (A : U) (s : Borel-Shape A) : U := +-ind₁ (Generator A) 𝟑 (λ (_ : Borel-Shape A), U) (λ (_ : Generator A), 𝟎) (ind₃₁ (λ (_ : 𝟑), U) 𝟎 -- empty 𝟏 -- complement ℕ -- countable union ) s def Borel (A : U) : U := W (s : Borel-Shape A), Borel-Pos A s

Constructors

def base' (A : U) (g : Generator A) : Borel A := sup (Borel-Shape A) (Borel-Pos A) (inl (Generator A) 𝟑 g) (ind₀ (Borel A)) def empty-code (A : U) : Borel A := sup (Borel-Shape A) (Borel-Pos A) (inr (Generator A) 𝟑 0₃) (ind₀ (Borel A)) def complement-code (A : U) (b : Borel A) : Borel A := sup (Borel-Shape A) (Borel-Pos A) (inr (Generator A) 𝟑 1₃) (λ (_ : 𝟏), b) def union-code (A : U) (f : Borel A) : Borel A := sup (Borel-Shape A) (Borel-Pos A) (inr (Generator A) 𝟑 2₃) f

Interpretation

The interpretation function turns a Borel code into an actual predicate on .

def isBorel (A : U) (b : Borel A) : A U := W-ind₁ (Borel-Shape A) (Borel-Pos A) (λ (_ : Borel A), A U) (λ (s : Borel-Shape A), +-ind₁ (Generator A) 𝟑 (λ (_ : Borel-Shape A), Π (f : Borel-Pos A s Borel A), (Π (p : Borel-Pos A s), A U) A U) (λ (g : Generator A) (_ : 𝟎 Borel A) (_ : 𝟎 A U), isOpen A g) (ind₃₁ (λ (t : 𝟑), Π (f : Borel-Pos A (inr (Generator A) 𝟑 t) Borel A), (Π (p : Borel-Pos A (inr (Generator A) 𝟑 t)), A U) A U) (λ (_ : 𝟎 Borel A) (_ : 𝟎 A U) (_ : A), 𝟎) -- empty (λ (f : 𝟏 Borel A) (h : 𝟏 A U) (a : A), (h ★ a) 𝟎) -- complement (λ (f : Borel A) (h : A U) (a : A), Σ (n :), h n a) -- union ) s) ) b

Borel Sets and σ-Algebra Structure

def BorelSets (A : U) (P : A U) : U:= Σ (b : Borel A), Path(A U) P (isBorel A b) def is-sigma-algebra (A : U) (S : (A U) U) : U:= Σ (empty : S (λ (_ : A), 𝟎)), Σ (compl : Π (P : A U), S P S (λ (a : A), (P a) 𝟎)), (Π (f : (A U)), (Π (n :), S (f n)) S (λ (a : A), Σ (n :), f n a)) def borel-is-sigma-algebra (A : U) : is-sigma-algebra A (BorelSets A) := ( (empty-code A, <_> (λ (_ : A), 𝟎)) , ( λ (P : A U) (H : BorelSets A P), (complement-code A H.1, <i> λ (a : A), ((H.2 @ i) a) 𝟎) , λ (f : (A U)) (H : Π (n :), BorelSets A (f n)), (union-code A (λ (n :), (H n).1), <i> λ (a : A), Σ (n :), ((H n).2 @ i) a ) ) )