. . . . . . . .
Formalizing a sophisticated defjnition Patrick Massot (Orsay) joint - - PowerPoint PPT Presentation
Formalizing a sophisticated defjnition Patrick Massot (Orsay) joint - - PowerPoint PPT Presentation
. . . . . . . . Formalizing a sophisticated defjnition Patrick Massot (Orsay) joint work with Kevin Buzzard (IC London) and Johan Commelin (Freiburg) Formal Methods in Mathematics Lean Together January 7th 2020 gives a limit
. . . . . . . .
Extending functions
Theorem
Let 𝐵 ⊂ ℝ𝑞 be a dense subset. Every uniformly continuous function 𝑔 ∶ 𝐵 → ℝ𝑟 extends to a (uniformly) continuous function ̄ 𝑔 ∶ ℝ𝑞 → ℝ𝑟. For every 𝑦 ∈ ℝ𝑞, choose a sequence 𝑏 ∶ ℕ → 𝐵 converging to 𝑦. Uniform continuity of 𝑔 ensures 𝑔 ∘ 𝑏 is Cauchy, completeness of ℝ𝑟 gives a limit 𝑧. Set ̄ 𝑔(𝑦) = 𝑧. Then prove continuity of ̄ 𝑔. Example: (+) ∶ ℚ × ℚ → ℚ ⊂ ℝ extends to (+) ∶ ℝ × ℝ → ℝ. But multiplication or inversion are not uniformly continuous.
. . . . . . . .
Extending functions
Theorem
Let 𝐵 ⊂ ℝ𝑞 be a dense subset. Every uniformly continuous function 𝑔 ∶ 𝐵 → ℝ𝑟 extends to a (uniformly) continuous function ̄ 𝑔 ∶ ℝ𝑞 → ℝ𝑟. For every 𝑦 ∈ ℝ𝑞, choose a sequence 𝑏 ∶ ℕ → 𝐵 converging to 𝑦. Uniform continuity of 𝑔 ensures 𝑔 ∘ 𝑏 is Cauchy, completeness of ℝ𝑟 gives a limit 𝑧. Set ̄ 𝑔(𝑦) = 𝑧. Then prove continuity of ̄ 𝑔. Example: (+) ∶ ℚ × ℚ → ℚ ⊂ ℝ extends to (+) ∶ ℝ × ℝ → ℝ. But multiplication or inversion are not uniformly continuous.
. . . . . . . .
Extending functions
Theorem
Let 𝐵 ⊂ ℝ𝑞 be a dense subset. Every uniformly continuous function 𝑔 ∶ 𝐵 → ℝ𝑟 extends to a (uniformly) continuous function ̄ 𝑔 ∶ ℝ𝑞 → ℝ𝑟. For every 𝑦 ∈ ℝ𝑞, choose a sequence 𝑏 ∶ ℕ → 𝐵 converging to 𝑦. Uniform continuity of 𝑔 ensures 𝑔 ∘ 𝑏 is Cauchy, completeness of ℝ𝑟 gives a limit 𝑧. Set ̄ 𝑔(𝑦) = 𝑧. Then prove continuity of ̄ 𝑔. Example: (+) ∶ ℚ × ℚ → ℚ ⊂ ℝ extends to (+) ∶ ℝ × ℝ → ℝ. But multiplication or inversion are not uniformly continuous.
. . . . . . . .
Theorem
𝐵 ⊂ ℝ𝑞 dense subset. If 𝑔 ∶ 𝐵 → ℝ𝑟 is continuous and ∀𝑦 ∈ ℝ𝑞, ∃𝑧 ∈ ℝ𝑟, ∀𝑣 ∶ ℕ → 𝐵, 𝑣𝑜 ⟶ 𝑦 ⇒ 𝑔(𝑣𝑜) ⟶ 𝑧 then 𝑔 extends to a continuous function ̄ 𝑔 ∶ ℝ𝑞 → ℝ𝑟. This applies to multiplication ℚ × ℚ → ℝ.
. . . . . . . .
A better framework?
In order to handle inversion ℚ∗ → ℝ∗ and more general spaces, we want a version where ℝ𝑞 and ℝ𝑟 are replaced by general topological spaces 𝑌 and 𝑍 . We can still say that 𝑔(𝑦) converges to 𝑧 when 𝑦 tends to 𝑦0 while remaining in 𝐵: ∀𝑋 ∈ 𝒪𝑧, ∃𝑊 ∈ 𝒪𝑦, ∀𝑏 ∈ 𝐵 ∩ 𝑊 , 𝑔(𝑏) ∈ 𝑋.
Theorem
Let 𝑌 be a topological space, 𝐵 a dense subset of 𝑌, and 𝑔 ∶ 𝐵 → 𝑍 a continuous mapping of 𝐵 into a regular space 𝑍 . If, for each 𝑦0 ∈ 𝑌, 𝑔(𝑦) tends to a limit in 𝑍 when 𝑦 tends to 𝑦0 while remaining in 𝐵 then 𝑔 extends to a continuous map ̄ 𝑔 ∶ 𝑌 → 𝑍
. . . . . . . .
A better framework?
In order to handle inversion ℚ∗ → ℝ∗ and more general spaces, we want a version where ℝ𝑞 and ℝ𝑟 are replaced by general topological spaces 𝑌 and 𝑍 . We can still say that 𝑔(𝑦) converges to 𝑧 when 𝑦 tends to 𝑦0 while remaining in 𝐵: ∀𝑋 ∈ 𝒪𝑧, ∃𝑊 ∈ 𝒪𝑦, ∀𝑏 ∈ 𝐵 ∩ 𝑊 , 𝑔(𝑏) ∈ 𝑋.
Theorem
Let 𝑌 be a topological space, 𝐵 a dense subset of 𝑌, and 𝑔 ∶ 𝐵 → 𝑍 a continuous mapping of 𝐵 into a regular space 𝑍 . If, for each 𝑦0 ∈ 𝑌, 𝑔(𝑦) tends to a limit in 𝑍 when 𝑦 tends to 𝑦0 while remaining in 𝐵 then 𝑔 extends to a continuous map ̄ 𝑔 ∶ 𝑌 → 𝑍
. . . . . . . .
A better framework?
In order to handle inversion ℚ∗ → ℝ∗ and more general spaces, we want a version where ℝ𝑞 and ℝ𝑟 are replaced by general topological spaces 𝑌 and 𝑍 . We can still say that 𝑔(𝑦) converges to 𝑧 when 𝑦 tends to 𝑦0 while remaining in 𝐵: ∀𝑋 ∈ 𝒪𝑧, ∃𝑊 ∈ 𝒪𝑦, ∀𝑏 ∈ 𝐵 ∩ 𝑊 , 𝑔(𝑏) ∈ 𝑋.
Theorem
Let 𝑌 be a topological space, 𝐵 a dense subset of 𝑌, and 𝑔 ∶ 𝐵 → 𝑍 a continuous mapping of 𝐵 into a regular space 𝑍 . If, for each 𝑦0 ∈ 𝑌, 𝑔(𝑦) tends to a limit in 𝑍 when 𝑦 tends to 𝑦0 while remaining in 𝐵 then 𝑔 extends to a continuous map ̄ 𝑔 ∶ 𝑌 → 𝑍
. . . . . . . .
Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ
𝑗𝑜𝑤 𝑗𝑜𝑤
. . . . . . . .
Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ
𝑗𝑜𝑤 𝑗𝑜𝑤
. . . . . . . .
Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ
𝑗𝑜𝑤 𝑗𝑜𝑤
. . . . . . . .
Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ
𝑗𝑜𝑤 𝑗𝑜𝑤
. . . . . . . .
Side issue: how to formally refer to ̄ 𝑔?
extend f i de h where de is a proof that 𝑗 is a dense topological embedding, and h is a proof that 𝑔 admits a limit...? This looks clunky. Note that i and f can be inferred from the types of de and h . Should we use extend de h ? A better solution is to defjne an extension operator 𝐹𝑗 by: 𝐹𝑗(𝑔)(𝑦) = {some 𝑧 such that 𝑔(𝑏) tends to 𝑧 when 𝑏 tends to 𝑦 some junk value if no such 𝑧 exists Density of image of 𝑗 is used only to ensure 𝑍 is non-empty! Then use de.extend f
. . . . . . . .
Side issue: how to formally refer to ̄ 𝑔?
extend f i de h where de is a proof that 𝑗 is a dense topological embedding, and h is a proof that 𝑔 admits a limit...? This looks clunky. Note that i and f can be inferred from the types of de and h . Should we use extend de h ? A better solution is to defjne an extension operator 𝐹𝑗 by: 𝐹𝑗(𝑔)(𝑦) = {some 𝑧 such that 𝑔(𝑏) tends to 𝑧 when 𝑏 tends to 𝑦 some junk value if no such 𝑧 exists Density of image of 𝑗 is used only to ensure 𝑍 is non-empty! Then use de.extend f
. . . . . . . .
Side issue: how to formally refer to ̄ 𝑔?
extend f i de h where de is a proof that 𝑗 is a dense topological embedding, and h is a proof that 𝑔 admits a limit...? This looks clunky. Note that i and f can be inferred from the types of de and h . Should we use extend de h ? A better solution is to defjne an extension operator 𝐹𝑗 by: 𝐹𝑗(𝑔)(𝑦) = {some 𝑧 such that 𝑔(𝑏) tends to 𝑧 when 𝑏 tends to 𝑦 some junk value if no such 𝑧 exists Density of image of 𝑗 is used only to ensure 𝑍 is non-empty! Then use de.extend f
. . . . . . . .
Separation issues
We want to generalize the story going from ℚ to ℝ, starting with a general topological ring 𝑆 (not necessarily metric, or even separated). There is a notion of completeness of a topological ring. One can build some ̂ 𝑆 which is a (minimal) complete separated space and a natural map 𝑗 ∶ 𝑆 → ̂ 𝑆. We want to extend addition and multiplication. The 𝑗 map is not injective if {0} is not closed in 𝑆.
. . . . . . . .
Separation issues
We want to generalize the story going from ℚ to ℝ, starting with a general topological ring 𝑆 (not necessarily metric, or even separated). There is a notion of completeness of a topological ring. One can build some ̂ 𝑆 which is a (minimal) complete separated space and a natural map 𝑗 ∶ 𝑆 → ̂ 𝑆. We want to extend addition and multiplication. The 𝑗 map is not injective if {0} is not closed in 𝑆.
. . . . . . . .
Separation issues
We want to generalize the story going from ℚ to ℝ, starting with a general topological ring 𝑆 (not necessarily metric, or even separated). There is a notion of completeness of a topological ring. One can build some ̂ 𝑆 which is a (minimal) complete separated space and a natural map 𝑗 ∶ 𝑆 → ̂ 𝑆. We want to extend addition and multiplication. The 𝑗 map is not injective if {0} is not closed in 𝑆.
. . . . . . . .
Standard solution
Defjne 𝑆′ = 𝑆/{0} which is separated. Since {0} is an ideal, 𝑆′ inherits addition and multiplication. Continuity is slightly tricky, but ok. Then 𝑗𝑆′ ∶ 𝑆′ → ̂ 𝑆′ is injective and ̂ 𝑆′ is isomorphic to ̂ 𝑆. Then redefjne ̂ 𝑆 = ̂ 𝑆′. Note: Even in ZFC, if 𝑆 is already separated, 𝑆′ ≠ 𝑆.
. . . . . . . .
Standard solution
Defjne 𝑆′ = 𝑆/{0} which is separated. Since {0} is an ideal, 𝑆′ inherits addition and multiplication. Continuity is slightly tricky, but ok. Then 𝑗𝑆′ ∶ 𝑆′ → ̂ 𝑆′ is injective and ̂ 𝑆′ is isomorphic to ̂ 𝑆. Then redefjne ̂ 𝑆 = ̂ 𝑆′. Note: Even in ZFC, if 𝑆 is already separated, 𝑆′ ≠ 𝑆.
. . . . . . . .
Standard solution
Defjne 𝑆′ = 𝑆/{0} which is separated. Since {0} is an ideal, 𝑆′ inherits addition and multiplication. Continuity is slightly tricky, but ok. Then 𝑗𝑆′ ∶ 𝑆′ → ̂ 𝑆′ is injective and ̂ 𝑆′ is isomorphic to ̂ 𝑆. Then redefjne ̂ 𝑆 = ̂ 𝑆′. Note: Even in ZFC, if 𝑆 is already separated, 𝑆′ ≠ 𝑆.
. . . . . . . .
Standard solution
Defjne 𝑆′ = 𝑆/{0} which is separated. Since {0} is an ideal, 𝑆′ inherits addition and multiplication. Continuity is slightly tricky, but ok. Then 𝑗𝑆′ ∶ 𝑆′ → ̂ 𝑆′ is injective and ̂ 𝑆′ is isomorphic to ̂ 𝑆. Then redefjne ̂ 𝑆 = ̂ 𝑆′. Note: Even in ZFC, if 𝑆 is already separated, 𝑆′ ≠ 𝑆.
. . . . . . . .
Final extension theorem
Return to 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Assume 𝑍 is not empty so we can defjne 𝐹𝑗 without any assumption on 𝑗.
Theorem
Fix 𝑦0 ∈ 𝑌. If, for every 𝑦1 in a neighborhood of 𝑦0, 𝑔(𝑏) tends to a limit in 𝑍 when 𝑗(𝑏) tends to 𝑦1 then 𝐹𝑗𝑔 is continuous at 𝑦0. If in addition 𝑦0 = 𝑗(𝑏), 𝑔 is continuous at 𝑏 and 𝑗 pulls back the topology of 𝑌 to the topology of 𝐵 then 𝐹𝑗(𝑔)(𝑗(𝑏)) = 𝑔(𝑏).
. . . . . . . .
Final extension theorem
Return to 𝐵 𝑍 𝑌
𝑔 𝑗 ∃? ̄ 𝑔
Assume 𝑍 is not empty so we can defjne 𝐹𝑗 without any assumption on 𝑗.
Theorem
Fix 𝑦0 ∈ 𝑌. If, for every 𝑦1 in a neighborhood of 𝑦0, 𝑔(𝑏) tends to a limit in 𝑍 when 𝑗(𝑏) tends to 𝑦1 then 𝐹𝑗𝑔 is continuous at 𝑦0. If in addition 𝑦0 = 𝑗(𝑏), 𝑔 is continuous at 𝑏 and 𝑗 pulls back the topology of 𝑌 to the topology of 𝐵 then 𝐹𝑗(𝑔)(𝑗(𝑏)) = 𝑔(𝑏).
. . . . . . . .
Side propaganda
The assumption in the fjrst part of the previous theorem can be written as ∃𝑉 ∈ 𝒪𝑦0, ∀𝑦 ∈ 𝑉, ∃𝑧 ∈ 𝑍 , ∀𝑋 ∈ 𝒪𝑧, ∃𝑊 ∈ 𝒪𝑦, ∀𝑏 ∈ 𝐵, 𝑗(𝑏) ∈ 𝑊 ⇒ 𝑔(𝑏) ∈ 𝑋. In mathlib, the assumption is written as {𝑦 | ∃𝑧, 𝑔∗𝑗∗𝒪𝑦 ≤ 𝒪𝑧} ∈ 𝒪𝑦0.
. . . . . . . .
Side propaganda
The assumption in the fjrst part of the previous theorem can be written as ∃𝑉 ∈ 𝒪𝑦0, ∀𝑦 ∈ 𝑉, ∃𝑧 ∈ 𝑍 , ∀𝑋 ∈ 𝒪𝑧, ∃𝑊 ∈ 𝒪𝑦, ∀𝑏 ∈ 𝐵, 𝑗(𝑏) ∈ 𝑊 ⇒ 𝑔(𝑏) ∈ 𝑋. In mathlib, the assumption is written as {𝑦 | ∃𝑧, 𝑔∗𝑗∗𝒪𝑦 ≤ 𝒪𝑧} ∈ 𝒪𝑦0.
. . . . . . . .
Perfectoid project assessment
- We could do it without hiring a computer scientist
- Some mathematicians noticed.
- CPP 2020 liked it.
- We did contribute to mathlib, but have a large merge backlog
- Big projects are good. Next one?
. . . . . . . .
Perfectoid project assessment
- We could do it without hiring a computer scientist
- Some mathematicians noticed.
- CPP 2020 liked it.
- We did contribute to mathlib, but have a large merge backlog
- Big projects are good. Next one?
. . . . . . . .
Perfectoid project assessment
- We could do it without hiring a computer scientist
- Some mathematicians noticed.
- CPP 2020 liked it.
- We did contribute to mathlib, but have a large merge backlog
- Big projects are good. Next one?
. . . . . . . .
Perfectoid project assessment
- We could do it without hiring a computer scientist
- Some mathematicians noticed.
- CPP 2020 liked it.
- We did contribute to mathlib, but have a large merge backlog
- Big projects are good. Next one?
. . . . . . . .
Perfectoid project assessment
- We could do it without hiring a computer scientist
- Some mathematicians noticed.
- CPP 2020 liked it.
- We did contribute to mathlib, but have a large merge backlog
- Big projects are good. Next one?