Nöbeling's theorem #
This file proves Nöbeling's theorem.
Main result #
LocallyConstant.freeOfProfinite
: Nöbeling's theorem. ForS : Profinite
, theℤ
-moduleLocallyConstant S ℤ
is free.
Proof idea #
We follow the proof of theorem 5.4 in [Sch19], in which the idea is to embed S
in
a product of I
copies of Bool
for some sufficiently large I
, and then to choose a
well-ordering on I
and use ordinal induction over that well-order. Here we can let I
be
the set of clopen subsets of S
since S
is totally separated.
The above means it suffices to prove the following statement: For a closed subset C
of I → Bool
,
the ℤ
-module LocallyConstant C ℤ
is free.
For i : I
, let e C i : LocallyConstant C ℤ
denote the map fun f ↦ (if f.val i then 1 else 0)
.
The basis will consist of products e C iᵣ * ⋯ * e C i₁
with iᵣ > ⋯ > i₁
which cannot be written
as linear combinations of lexicographically smaller products. We call this set GoodProducts C
What is proved by ordinal induction is that this set is linearly independent. The fact that it spans can be proved directly.
References #
- [Sch19], Theorem 5.4.
Projection maps #
The purpose of this section is twofold.
Firstly, in the proof that the set GoodProducts C
spans the whole module LocallyConstant C ℤ
,
we need to project C
down to finite discrete subsets and write C
as a cofiltered limit of those.
Secondly, in the inductive argument, we need to project C
down to "smaller" sets satisfying the
inductive hypothesis.
In this section we define the relevant projection maps and prove some compatibility results.
Main definitions #
Let
J : I → Prop
. ThenProj J : (I → Bool) → (I → Bool)
is the projection mapping everything that satisfiesJ i
to itself, and everything else tofalse
.The image of
C
underProj J
is denotedπ C J
and the corresponding mapC → π C J
is calledProjRestrict
. IfJ
impliesK
we have a mapProjRestricts : π C K → π C J
.spanCone_isLimit
establishes that whenC
is compact, it can be written as a limit of its images under the mapsProj (· ∈ s)
wheres : Finset I
.
The projection mapping everything that satisfies J i
to itself, and everything else to false
Equations
- Profinite.NobelingProof.Proj J c i = if J i then c i else false
Instances For
The restriction of Proj π J
to a subset, mapping to its image.
Equations
Instances For
A variant of ProjRestrict
with domain of the form π C K
Equations
Instances For
The objectwise map in the isomorphism spanFunctor ≅ Profinite.indexFunctor
.
Equations
- Profinite.NobelingProof.iso_map C J = { toFun := fun (x : ↑(Profinite.NobelingProof.π C J)) => ⟨fun (i : { i : I // J i }) => ↑x ↑i, ⋯⟩, continuous_toFun := ⋯ }
Instances For
For a given compact subset C
of I → Bool
, spanFunctor
is the functor from the poset of finsets
of I
to Profinite
, sending a finite subset set J
to the image of C
under the projection
Proj J
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The limit cone on spanFunctor
with point C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Defining the basis #
Our proposed basis consists of products e C iᵣ * ⋯ * e C i₁
with iᵣ > ⋯ > i₁
which cannot be
written as linear combinations of lexicographically smaller products. See below for the definition
of e
.
Main definitions #
For
i : I
, we lete C i : LocallyConstant C ℤ
denote the mapfun f ↦ (if f.val i then 1 else 0)
.Products I
is the type of lists of decreasing elements ofI
, so a typical element is[i₁, i₂,..., iᵣ]
withi₁ > i₂ > ... > iᵣ
.Products.eval C
is theC
-evaluation of a list. It takes a term[i₁, i₂,..., iᵣ] : Products I
and returns the actual producte C i₁ ··· e C iᵣ : LocallyConstant C ℤ
.GoodProducts C
is the set ofProducts I
such that theirC
-evaluation cannot be written as a linear combination of evaluations of lexicographically smaller lists.
Main results #
Products.evalFacProp
andProducts.evalFacProps
establish the fact thatProducts.eval
interacts nicely with the projection maps from the previous section.GoodProducts.span_iff_products
: the good products spanLocallyConstant C ℤ
iff all the products spanLocallyConstant C ℤ
.
Products I
is the type of lists of decreasing elements of I
, so a typical element is
[i₁, i₂, ...]
with i₁ > i₂ > ...
. We order Products I
lexicographically, so [] < [i₁, ...]
,
and [i₁, i₂, ...] < [j₁, j₂, ...]
if either i₁ < j₁
, or i₁ = j₁
and [i₂, ...] < [j₂, ...]
.
Terms m = [i₁, i₂, ..., iᵣ]
of this type will be used to represent products of the form
e C i₁ ··· e C iᵣ : LocallyConstant C ℤ
. The function associated to m
is m.eval
.
Equations
- Profinite.NobelingProof.Products I = { l : List I // List.Chain' (fun (x1 x2 : I) => x1 > x2) l }
Instances For
Equations
- Profinite.NobelingProof.Products.instLinearOrder = inferInstanceAs (LinearOrder { l : List I // List.Chain' (fun (x1 x2 : I) => x1 > x2) l })
The evaluation e C i₁ ··· e C iᵣ : C → ℤ
of a formal product [i₁, i₂, ..., iᵣ]
.
Equations
- Profinite.NobelingProof.Products.eval C l = (List.map (Profinite.NobelingProof.e C) ↑l).prod
Instances For
The predicate on products which we prove picks out a basis of LocallyConstant C ℤ
. We call such a
product "good".
Equations
- One or more equations did not get rendered due to their size.
Instances For
The set of good products.
Equations
Instances For
Evaluation of good products.
Equations
Instances For
The image of the good products in the module LocallyConstant C ℤ
.
Equations
Instances For
The type of good products is equivalent to its image.
Equations
Instances For
The good products span LocallyConstant C ℤ
if and only all the products do.
The good products span #
Most of the argument is developing an API for π C (· ∈ s)
when s : Finset I
; then the image
of C
is finite with the discrete topology. In this case, there is a direct argument that the good
products span. The general result is deduced from this.
Main theorems #
GoodProducts.spanFin
: The good products span the locally constant functions onπ C (· ∈ s)
ifs
is finite.GoodProducts.span
: The good products spanLocallyConstant C ℤ
for every closed subsetC
.
The ℤ
-linear map induced by precomposition of the projection C → π C (· ∈ s)
.
Equations
- Profinite.NobelingProof.πJ C s = LocallyConstant.comapₗ ℤ { toFun := Profinite.NobelingProof.ProjRestrict C fun (x : I) => x ∈ s, continuous_toFun := ⋯ }
Instances For
π C (· ∈ s)
is finite for a finite set s
.
Equations
- Profinite.NobelingProof.instFintypeElemForallBoolπMemFinset C s = Fintype.ofInjective (fun (x : ↑(Profinite.NobelingProof.π C fun (x : I) => x ∈ s)) (j : { x : I // x ∈ s }) => ↑x ↑j) ⋯
The Kronecker delta as a locally constant map from π C (· ∈ s)
to ℤ
.
Equations
- Profinite.NobelingProof.spanFinBasis C s x = { toFun := fun (y : ↑(Profinite.NobelingProof.π C fun (x : I) => x ∈ s)) => if y = x then 1 else 0, isLocallyConstant := ⋯ }
Instances For
A certain explicit list of locally constant maps. The theorem factors_prod_eq_basis
shows that the
product of the elements in this list is the delta function spanFinBasis C s x
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If s
is finite, the product of the elements of the list factors C s x
is the delta function at x
.
If s
is a finite subset of I
, then the good products span.
The good products span all of LocallyConstant C ℤ
if C
is closed.
Relating elements of the well-order I
with ordinals #
We choose a well-ordering on I
. This amounts to regarding I
as an ordinal, and as such it
can be regarded as the set of all strictly smaller ordinals, allowing to apply ordinal induction.
Main definitions #
ord I i
is the termi
ofI
regarded as an ordinal.term I ho
is a sufficiently small ordinal regarded as a term ofI
.contained C o
is a predicate saying thatC
is "small" enough in relation to the ordinalo
to satisfy the inductive hypothesis.P I
is the predicate on ordinals about linear independence of good products, which the rest of this file is spent on proving by induction.
A term of I
regarded as an ordinal.
Equations
- Profinite.NobelingProof.ord I i = (Ordinal.typein fun (x1 x2 : I) => x1 < x2).toRelEmbedding i
Instances For
An ordinal regarded as a term of I
.
Equations
- Profinite.NobelingProof.term I ho = (Ordinal.enum fun (x1 x2 : I) => x1 < x2) ⟨o, ho⟩
Instances For
A predicate saying that C
is "small" enough to satisfy the inductive hypothesis.
Equations
- Profinite.NobelingProof.contained C o = ∀ f ∈ C, ∀ (i : I), f i = true → Profinite.NobelingProof.ord I i < o
Instances For
The predicate on ordinals which we prove by induction, see GoodProducts.P0
,
GoodProducts.Plimit
and GoodProducts.linearIndependentAux
in the section Induction
below
Equations
- One or more equations did not get rendered due to their size.
Instances For
The zero case of the induction #
In this case, we have contained C 0
which means that C
is either empty or a singleton.
The empty list as a Products
Equations
- Profinite.NobelingProof.Products.nil = ⟨[], ⋯⟩
Instances For
There is a unique GoodProducts
for the singleton {fun _ ↦ false}
.
Equations
- Profinite.NobelingProof.instUniqueSubtypeProductsIsGoodSingletonForallBoolSetFalse = { default := ⟨Profinite.NobelingProof.Products.nil, ⋯⟩, uniq := ⋯ }
ℤ
-linear maps induced by projections #
We define injective ℤ
-linear maps between modules of the form LocallyConstant C ℤ
induced by
precomposition with the projections defined in the section Projections
.
Main definitions #
πs
andπs'
are theℤ
-linear maps corresponding toProjRestrict
andProjRestricts
respectively.
Main result #
- We prove that
πs
andπs'
interact well withProducts.eval
and the main application is the theoremisGood_mono
which says that the propertyisGood
is "monotone" on ordinals.
The ℤ
-linear map induced by precomposition of the projection C → π C (ord I · < o)
.
Equations
- Profinite.NobelingProof.πs C o = LocallyConstant.comapₗ ℤ { toFun := Profinite.NobelingProof.ProjRestrict C fun (x : I) => Profinite.NobelingProof.ord I x < o, continuous_toFun := ⋯ }
Instances For
The ℤ
-linear map induced by precomposition of the projection
π C (ord I · < o₂) → π C (ord I · < o₁)
for o₁ ≤ o₂
.
Equations
- Profinite.NobelingProof.πs' C h = LocallyConstant.comapₗ ℤ { toFun := Profinite.NobelingProof.ProjRestricts C ⋯, continuous_toFun := ⋯ }
Instances For
If l
is good w.r.t. π C (ord I · < o₁)
and o₁ ≤ o₂
, then it is good w.r.t.
π C (ord I · < o₂)
The limit case of the induction #
We relate linear independence in LocallyConstant (π C (ord I · < o')) ℤ
with linear independence
in LocallyConstant C ℤ
, where contained C o
and o' < o
.
When o
is a limit ordinal, we prove that the good products in LocallyConstant C ℤ
are linearly
independent if and only if a certain directed union is linearly independent. Each term in this
directed union is in bijection with the good products w.r.t. π C (ord I · < o')
for an ordinal
o' < o
, and these are linearly independent by the inductive hypothesis.
Main definitions #
GoodProducts.smaller
is the image of good products coming from a smaller ordinal.GoodProducts.range_equiv
: The image of theGoodProducts
inC
is equivalent to the union ofsmaller C o'
over all ordinalso' < o
.
Main results #
Products.limitOrdinal
: foro
a limit ordinal such thatcontained C o
, a productl
is good w.r.t.C
iff it there exists an ordinalo' < o
such thatl
is good w.r.t.π C (ord I · < o')
.GoodProducts.linearIndependent_iff_union_smaller
is the result mentioned above, that the good products are linearly independent iff a directed union is.
The image of the GoodProducts
for π C (ord I · < o)
in LocallyConstant C ℤ
. The name smaller
refers to the setting in which we will use this, when we are mapping in GoodProducts
from a
smaller set, i.e. when o
is a smaller ordinal than the one C
is "contained" in.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The map from the image of the GoodProducts
in LocallyConstant (π C (ord I · < o)) ℤ
to
smaller C o
Equations
Instances For
The equivalence from the image of the GoodProducts
in LocallyConstant (π C (ord I · < o)) ℤ
to
smaller C o
Equations
Instances For
The image of the GoodProducts
in C
is equivalent to the union of smaller C o'
over all
ordinals o' < o
.
Equations
Instances For
The successor case in the induction #
Here we assume that o
is an ordinal such that contained C (o+1)
and o < I
. The element in I
corresponding to o
is called term I ho
, but in this informal docstring we refer to it simply as
o
.
This section follows the proof in [Sch19] quite closely. A translation of the notation there is as follows:
[scholze2019condensed] | This file
`S₀` |`C0`
`S₁` |`C1`
`\overline{S}` |`π C (ord I · < o)
`\overline{S}'` |`C'`
The left map in the exact sequence |`πs`
The right map in the exact sequence |`Linear_CC'`
When comparing the proof of the successor case in Theorem 5.4 in [Sch19] with this proof, one should read the phrase "is a basis" as "is linearly independent". Also, the short exact sequence in [Sch19] is only proved to be left exact here (indeed, that is enough since we are only proving linear independence).
This section is split into two sections. The first one, ExactSequence
defines the left exact
sequence mentioned in the previous paragraph (see succ_mono
and succ_exact
). It corresponds to
the penultimate paragraph of the proof in [Sch19]. The second one, GoodProducts
corresponds to the last paragraph in the proof in [Sch19].
Main definitions #
The main definitions in the section ExactSequence
are all just notation explained in the table
above.
The main definitions in the section GoodProducts
are as follows:
MaxProducts
: the set of good products that contain the ordinalo
(since we havecontained C (o+1)
, these all start witho
).GoodProducts.sum_equiv
: the equivalence betweenGoodProducts C
and the disjoint union ofMaxProducts C
andGoodProducts (π C (ord I · < o))
.
Main results #
- The main results in the section
ExactSequence
aresucc_mono
andsucc_exact
which together say that the sequence given byπs
andLinear_CC'
is left exact:
wheref g 0 --→ LocallyConstant (π C (ord I · < o)) ℤ --→ LocallyConstant C ℤ --→ LocallyConstant C' ℤ
f
isπs
andg
isLinear_CC'
.
The main results in the section GoodProducts
are as follows:
Products.max_eq_eval
says that the linear map on the right in the exact sequence, i.e.Linear_CC'
, takes the evaluation of a term ofMaxProducts
to the evaluation of the corresponding list with the leadingo
removed.GoodProducts.maxTail_isGood
says that removing the leadingo
from a term ofMaxProducts C
yields a list whichisGood
with respect toC'
.
The subset of C
consisting of those elements whose o
-th entry is false
.
Equations
- Profinite.NobelingProof.C0 C ho = C ∩ {f : I → Bool | f (Profinite.NobelingProof.term I ho) = false}
Instances For
The subset of C
consisting of those elements whose o
-th entry is true
.
Equations
- Profinite.NobelingProof.C1 C ho = C ∩ {f : I → Bool | f (Profinite.NobelingProof.term I ho) = true}
Instances For
The intersection of C0
and the projection of C1
. We will apply the inductive hypothesis to
this set.
Equations
- Profinite.NobelingProof.C' C ho = Profinite.NobelingProof.C0 C ho ∩ Profinite.NobelingProof.π (Profinite.NobelingProof.C1 C ho) fun (x : I) => Profinite.NobelingProof.ord I x < o
Instances For
Swapping the o
-th coordinate to true
.
Equations
- Profinite.NobelingProof.SwapTrue o f i = if Profinite.NobelingProof.ord I i = o then true else f i
Instances For
The first way to map C'
into C
.
Equations
- Profinite.NobelingProof.CC'₀ C ho g = ⟨↑g, ⋯⟩
Instances For
The second way to map C'
into C
.
Equations
- Profinite.NobelingProof.CC'₁ C hsC ho g = ⟨Profinite.NobelingProof.SwapTrue o ↑g, ⋯⟩
Instances For
The ℤ
-linear map induced by precomposing with CC'₀
Equations
- Profinite.NobelingProof.Linear_CC'₀ C ho = LocallyConstant.comapₗ ℤ { toFun := Profinite.NobelingProof.CC'₀ C ho, continuous_toFun := ⋯ }
Instances For
The ℤ
-linear map induced by precomposing with CC'₁
Equations
- Profinite.NobelingProof.Linear_CC'₁ C hsC ho = LocallyConstant.comapₗ ℤ { toFun := Profinite.NobelingProof.CC'₁ C hsC ho, continuous_toFun := ⋯ }
Instances For
The difference between Linear_CC'₁
and Linear_CC'₀
.
Equations
- Profinite.NobelingProof.Linear_CC' C hsC ho = Profinite.NobelingProof.Linear_CC'₁ C hsC ho - Profinite.NobelingProof.Linear_CC'₀ C ho
Instances For
The GoodProducts
in C
that contain o
(they necessarily start with o
, see
GoodProducts.head!_eq_o_of_maxProducts
)
Equations
Instances For
The inclusion map from the sum of GoodProducts (π C (ord I · < o))
and
(MaxProducts C ho)
to Products I
.
Equations
- Profinite.NobelingProof.GoodProducts.sum_to C ho = Sum.elim Subtype.val Subtype.val
Instances For
The equivalence from the sum of GoodProducts (π C (ord I · < o))
and
(MaxProducts C ho)
to GoodProducts C
.
Equations
Instances For
Let
N := LocallyConstant (π C (ord I · < o)) ℤ
M := LocallyConstant C ℤ
P := LocallyConstant (C' C ho) ℤ
ι := GoodProducts (π C (ord I · < o))
ι' := GoodProducts (C' C ho')
v : ι → N := GoodProducts.eval (π C (ord I · < o))
Then SumEval C ho
is the map u
in the diagram below. It is linearly independent if and only if
GoodProducts.eval C
is, see linearIndependent_iff_sum
. The top row is the exact sequence given
by succ_exact
and succ_mono
. The left square commutes by GoodProducts.square_commutes
.
0 --→ N --→ M --→ P
↑ ↑ ↑
v| u| |
ι → ι ⊕ ι' ← ι'
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- l.Tail = ⟨(↑l).tail, ⋯⟩
Instances For
Removing the leading o
from a term of MaxProducts C
yields a list which isGood
with respect to
C'
.
Given l : MaxProducts C ho
, its Tail
is a GoodProducts (C' C ho)
.
Equations
- Profinite.NobelingProof.GoodProducts.MaxToGood C hC hsC ho h₁ l = ⟨(↑l).Tail, ⋯⟩
Instances For
The induction #
Here we put together the results of the sections Zero
, Limit
and Successor
to prove the
predicate P I o
holds for all ordinals o
, and conclude with the main result:
GoodProducts.linearIndependent
which says thatGoodProducts C
is linearly independent whenC
is closed.
We also define
GoodProducts.Basis
which usesGoodProducts.linearIndependent
andGoodProducts.span
to define a basis forLocallyConstant C ℤ
GoodProducts C
as a ℤ
-basis for LocallyConstant C ℤ
.
Equations
Instances For
Given a profinite set S
and a closed embedding S → (I → Bool)
, the ℤ
-module
LocallyConstant C ℤ
is free.
The embedding S → (I → Bool)
where I
is the set of clopens of S
.
Equations
- Profinite.Nobeling.ι S s C = decide (s ∈ ↑C)
Instances For
The map Nobeling.ι
is a closed embedding.
Alias of Profinite.Nobeling.isClosedEmbedding
.
The map Nobeling.ι
is a closed embedding.
Nöbeling's theorem: the ℤ
-module LocallyConstant S ℤ
is free for every S : Profinite