Formalizing a sophisticated defjnition Patrick Massot (Orsay) joint - - PowerPoint PPT Presentation

formalizing a sophisticated defjnition
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

. . . . . . . .

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

slide-2
SLIDE 2

. . . . . . . .

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.

slide-3
SLIDE 3

. . . . . . . .

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.

slide-4
SLIDE 4

. . . . . . . .

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.

slide-5
SLIDE 5

. . . . . . . .

Theorem

𝐵 ⊂ ℝ𝑞 dense subset. If 𝑔 ∶ 𝐵 → ℝ𝑟 is continuous and ∀𝑦 ∈ ℝ𝑞, ∃𝑧 ∈ ℝ𝑟, ∀𝑣 ∶ ℕ → 𝐵, 𝑣𝑜 ⟶ 𝑦 ⇒ 𝑔(𝑣𝑜) ⟶ 𝑧 then 𝑔 extends to a continuous function ̄ 𝑔 ∶ ℝ𝑞 → ℝ𝑟. This applies to multiplication ℚ × ℚ → ℝ.

slide-6
SLIDE 6

. . . . . . . .

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 ̄ 𝑔 ∶ 𝑌 → 𝑍

slide-7
SLIDE 7

. . . . . . . .

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 ̄ 𝑔 ∶ 𝑌 → 𝑍

slide-8
SLIDE 8

. . . . . . . .

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 ̄ 𝑔 ∶ 𝑌 → 𝑍

slide-9
SLIDE 9

. . . . . . . .

Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌

𝑔 𝑗 ∃? ̄ 𝑔

Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ

𝑗𝑜𝑤 𝑗𝑜𝑤

slide-10
SLIDE 10

. . . . . . . .

Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌

𝑔 𝑗 ∃? ̄ 𝑔

Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ

𝑗𝑜𝑤 𝑗𝑜𝑤

slide-11
SLIDE 11

. . . . . . . .

Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌

𝑔 𝑗 ∃? ̄ 𝑔

Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ

𝑗𝑜𝑤 𝑗𝑜𝑤

slide-12
SLIDE 12

. . . . . . . .

Does this theorem really applies to ℚ × ℚ ⊂ ℝ × ℝ? Hint: ℚ ⊄ ℝ. Better framework: 𝐵 𝑍 𝑌

𝑔 𝑗 ∃? ̄ 𝑔

Issue: will we need discussions of ℚ ℚ∗ ℚ∗ ℚ ℝ ℝ∗ ℝ∗ ℝ

𝑗𝑜𝑤 𝑗𝑜𝑤

slide-13
SLIDE 13

. . . . . . . .

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

slide-14
SLIDE 14

. . . . . . . .

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

slide-15
SLIDE 15

. . . . . . . .

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

slide-16
SLIDE 16

. . . . . . . .

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 𝑆.

slide-17
SLIDE 17

. . . . . . . .

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 𝑆.

slide-18
SLIDE 18

. . . . . . . .

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 𝑆.

slide-19
SLIDE 19

. . . . . . . .

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, 𝑆′ ≠ 𝑆.

slide-20
SLIDE 20

. . . . . . . .

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, 𝑆′ ≠ 𝑆.

slide-21
SLIDE 21

. . . . . . . .

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, 𝑆′ ≠ 𝑆.

slide-22
SLIDE 22

. . . . . . . .

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, 𝑆′ ≠ 𝑆.

slide-23
SLIDE 23

. . . . . . . .

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 𝐹𝑗(𝑔)(𝑗(𝑏)) = 𝑔(𝑏).

slide-24
SLIDE 24

. . . . . . . .

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 𝐹𝑗(𝑔)(𝑗(𝑏)) = 𝑔(𝑏).

slide-25
SLIDE 25

. . . . . . . .

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.

slide-26
SLIDE 26

. . . . . . . .

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.

slide-27
SLIDE 27

. . . . . . . .

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?
slide-28
SLIDE 28

. . . . . . . .

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?
slide-29
SLIDE 29

. . . . . . . .

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?
slide-30
SLIDE 30

. . . . . . . .

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?
slide-31
SLIDE 31

. . . . . . . .

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?