FormalConjectures/Millennium/Poincare.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

12 declarations, 9 contain sorry, 0 declared as axioms

The Poincaré Conjecture

References:

The formalisations in this file are based on the ones written by Junyan Xu in Mathlib4.

Imports (1)
Imported by 1 file
  1. def PoincareConjecture.ConjectureFor The predicate that the generalized Poincaré conjecture holds in dimension line 45 source

    Source documentation

    The predicate that the generalized Poincaré conjecture holds in dimension $n$, i.e. that any $n$-dimensional manifold that is homotopy equivalent to the sphere is in fact homeomorphic to the sphere.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat

    Proof uses: TopologicalSpace, T2Space, ChartedSpace, EuclideanSpace, Real, Fin, OfNat.ofNat, ENNReal, ContinuousMap.HomotopyEquiv, HAdd.hAdd, Metric.sphere, Membership.mem, Set, Nonempty, Homeomorph

    29 instances, coercions and auxiliary constants left out.

    def ConjectureFor (n : ℕ) : Prop :=
    …
  2. theorem PoincareConjecture.poincare_conjecture The Millennium Problem, solved by Grigori Perelman in 2003: the Poincaré Conjecture holds sorry line 52 source

    Source documentation

    The Millennium Problem, solved by Grigori Perelman in 2003: the Poincaré Conjecture holds.

    depends on sorry what this means

    Statement uses: PoincareConjecture.ConjectureFor, OfNat.ofNat, Nat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture : ConjectureFor 3 := by
    …

    Mentions: PoincareConjecture.ConjectureFor

  3. theorem PoincareConjecture.poincare_conjecture.variants.dimension_two The Generalized Poincaré Conjecture holds for surfaces sorry line 59 source

    Source documentation

    The Generalized Poincaré Conjecture holds for surfaces.

    depends on sorry what this means

    Statement uses: PoincareConjecture.ConjectureFor, OfNat.ofNat, Nat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.dimension_two : ConjectureFor 2 := by
    …

    Mentions: PoincareConjecture.ConjectureFor

  4. theorem PoincareConjecture.poincare_conjecture.variants.dimension_ge_five The Generalized Poincaré Conjecture holds for dimensions at least 5 sorry line 66 source

    Source documentation

    The Generalized Poincaré Conjecture holds for dimensions at least 5.

    depends on sorry what this means

    Statement uses: Nat, LE.le, OfNat.ofNat, PoincareConjecture.ConjectureFor

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    4 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.dimension_ge_five (n : ℕ) (hn : 5 ≤ n) : ConjectureFor n := by
    …

    Mentions: PoincareConjecture.ConjectureFor

  5. theorem PoincareConjecture.poincare_conjecture.variants.dimension_four The Generalized Poincaré Conjecture holds in dimension 4 sorry line 73 source

    Source documentation

    The Generalized Poincaré Conjecture holds in dimension 4.

    depends on sorry what this means

    Statement uses: PoincareConjecture.ConjectureFor, OfNat.ofNat, Nat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.dimension_four : ConjectureFor 4 := by
    …

    Mentions: PoincareConjecture.ConjectureFor

  6. def PoincareConjecture.SmoothConjectureFor The predicate that the smooth Poincaré conjecture holds in dimension line 81 source

    Source documentation

    The predicate that the smooth Poincaré conjecture holds in dimension $n$, i.e. that any smooth $n$-dimensional manifold that is homotopy equivalent to the sphere is in fact diffeomorphic to the sphere. As in ConjectureFor, the manifold must be Hausdorff: ChartedSpace and IsManifold do not imply this, and in every positive dimension there is a non-Hausdorff smooth manifold that is homotopy equivalent to the sphere.

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat

    Proof uses: TopologicalSpace, T2Space, ChartedSpace, EuclideanSpace, Real, Fin, OfNat.ofNat, ENNReal, IsManifold, modelWithCornersSelf, ENat, Top.top, ContinuousMap.HomotopyEquiv, HAdd.hAdd, Metric.sphere, Membership.mem, Set, Nonempty, Diffeomorph

    48 instances, coercions and auxiliary constants left out.

    def SmoothConjectureFor (n : ℕ) : Prop :=
    …
  7. theorem PoincareConjecture.poincare_conjecture.variants.smooth_for_three A reformulation of the Millennium Problem in terms of smooth 3-folds sorry line 87 source

    Source documentation

    A reformulation of the Millennium Problem in terms of smooth 3-folds.

    depends on sorry what this means

    Statement uses: PoincareConjecture.SmoothConjectureFor, OfNat.ofNat, Nat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.smooth_for_three : SmoothConjectureFor 3 := by
    …

    Mentions: PoincareConjecture.SmoothConjectureFor

  8. theorem PoincareConjecture.poincare_conjecture.variants.smooth_implication The smooth formulation of the Millennium Problem implies the general case sorry line 93 source

    Source documentation

    The smooth formulation of the Millennium Problem implies the general case. This follows from the fact that every topological 3-fold admits a smooth structure [mo296171].

    depends on sorry what this means

    Statement uses: PoincareConjecture.SmoothConjectureFor, OfNat.ofNat, Nat, PoincareConjecture.ConjectureFor

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.smooth_implication (H : SmoothConjectureFor 3) :
        ConjectureFor 3 := by
    …

    Mentions: PoincareConjecture.SmoothConjectureFor, PoincareConjecture.ConjectureFor

  9. def PoincareConjecture.SmoothTrueValues The values at which the smooth version of the conjecture is known to hold line 98 source

    Source documentation

    The values at which the smooth version of the conjecture is known to hold.

    no axioms what this means

    Statement uses: Set, Nat

    Proof uses: Insert.insert, OfNat.ofNat, Singleton.singleton

    3 instances, coercions and auxiliary constants left out.

    def SmoothTrueValues : Set ℕ := {1, 2, 3, 5, 6, 12, 56, 61}
    …
  10. theorem PoincareConjecture.poincare_conjecture.variants.smooth_known_cases The smooth version of the Poincaré conjecture is known to hold in dimensions $1, 2, 3, 5, 6, 12, 56, 61$ sorry line 103 source

    Source documentation

    The smooth version of the Poincaré conjecture is known to hold in dimensions $1, 2, 3, 5, 6, 12, 56, 61$. See [Wang2017].

    depends on sorry what this means

    Statement uses: Nat, Membership.mem, Set, PoincareConjecture.SmoothTrueValues, PoincareConjecture.SmoothConjectureFor

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat

    3 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.smooth_known_cases (n : ℕ) (hn : n ∈ SmoothTrueValues) :
        SmoothConjectureFor n := by
    …

    Mentions: PoincareConjecture.SmoothTrueValues, PoincareConjecture.SmoothConjectureFor

  11. theorem PoincareConjecture.poincare_conjecture.variants.smooth_dimension_four The four dimensional case of the smooth version of the conjecture is still open sorry line 110 source

    Source documentation

    The four dimensional case of the smooth version of the conjecture is still open. See [Wang2017].

    depends on sorry what this means

    Statement uses: PoincareConjecture.SmoothConjectureFor, OfNat.ofNat, Nat

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    2 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.smooth_dimension_four : SmoothConjectureFor 4 := by
    …

    Mentions: PoincareConjecture.SmoothConjectureFor

  12. theorem PoincareConjecture.poincare_conjecture.variants.smooth_other_cases It is conjectured that the only values of $n > 4$ for which the smooth version of the conjecture holds are $n = 5, 6, 12, 56, 61$ sorry line 116 source

    Source documentation

    It is conjectured that the only values of $n > 4$ for which the smooth version of the conjecture holds are $n = 5, 6, 12, 56, 61$. See Conjecture 1.17 in [Wang2017].

    depends on sorry what this means

    Statement uses: Nat, GT.gt, OfNat.ofNat, Not, Membership.mem, Set, PoincareConjecture.SmoothTrueValues, PoincareConjecture.SmoothConjectureFor

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    6 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem poincare_conjecture.variants.smooth_other_cases (n : ℕ) (hn : n > 4)
        (hn' : n ∉ SmoothTrueValues) : ¬ SmoothConjectureFor n := by
    …

    Mentions: PoincareConjecture.SmoothTrueValues, PoincareConjecture.SmoothConjectureFor