FormalConjectures/Wikipedia/Mandelbrot.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

15 declarations, 6 contain sorry, 0 declared as axioms

Conjectures about the Mandelbrot and Multibrot sets

This file adds three conjectures about the Mandelbrot and Multibrot sets:

References:

Imports (1)
Imported by 1 file
  1. def Mandelbrot.multibrotSet The Multibrot set of power n is the set of all parameters c : ℂ for which 0 does not escape to infinity under repeated application of z ↦ z ^ n + c line 43 source

    Source documentation

    The Multibrot set of power n is the set of all parameters c : ℂ for which 0 does not escape to infinity under repeated application of z ↦ z ^ n + c.

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

    Statement uses: Nat, Set, Complex

    Proof uses: Set.ofPred, Not, Filter.Tendsto, Nat.iterate, HAdd.hAdd, HPow.hPow, OfNat.ofNat, Filter.atTop, Bornology.cobounded

    16 instances, coercions and auxiliary constants left out.

    def multibrotSet (n : ℕ) : Set ℂ :=
    …
  2. abbrev Mandelbrot.mandelbrotSet The Mandelbrot set is the special case of the multibrot set for n = 2 line 49 source

    Source documentation

    The Mandelbrot set is the special case of the multibrot set for n = 2. In other words, it is the set of all parameters c : ℂ for which 0 does not escape to infinity under repeated application of z ↦ z ^ 2 + c.

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

    Statement uses: Set, Complex

    Proof uses: Mandelbrot.multibrotSet, OfNat.ofNat, Nat

    1 instances, coercions and auxiliary constants left out.

    abbrev mandelbrotSet := multibrotSet 2
    …

    Mentions: Mandelbrot.multibrotSet

  3. theorem Mandelbrot.multibrotSet_eq Documented declaration: multibrotSet_eq line 54 source

    Source documentation

    The multibrotSet n is equivalently the set of all parameters c for which the orbit of 0 under z ↦ z ^ n + c does not leave the closed disk of radius 2 ^ (n - 1)⁻¹ around the origin.

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

    Statement uses: Nat, LE.le, OfNat.ofNat, Eq, Set, Complex, Mandelbrot.multibrotSet, Set.ofPred, Real, Norm.norm, Nat.iterate, HAdd.hAdd, HPow.hPow, Inv.inv, HSub.hSub

    Proof uses: LT.lt, LT.lt.trans_le, one_lt_two, Eq.mpr, id, congrArg, rfl, Real.rpow_pos_of_pos, Mathlib.Meta.Positivity.pos_of_isNat, inferInstance, PartialOrder, Mathlib.Meta.NormNum.isNat_ofNat, Eq.refl, Mathlib.Meta.NormNum.instAtLeastTwo, Bool, Nat.ble, of_eq_true, Eq.trans, True, congrFun' and 177 more

    249 instances, coercions and auxiliary constants left out.

    Tactic trace: 63 steps

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

    theorem multibrotSet_eq {n : ℕ} (hn : 2 ≤ n) :
        multibrotSet n = {c | ∀ k, ‖(fun z ↦ z ^ n + c)^[k] 0‖ ≤ 2 ^ (n - 1 : ℝ)⁻¹} := by
    …

    Mentions: Mandelbrot.multibrotSet, c

  4. theorem Mandelbrot.mandelbrotSet_eq The mandelbrot set is equivalently the set of all parameters c for which the orbit of 0 under z ↦ z ^ 2 + c does not leave the closed disk of radius two around the origin line 106 source

    Source documentation

    The mandelbrot set is equivalently the set of all parameters c for which the orbit of 0 under z ↦ z ^ 2 + c does not leave the closed disk of radius two around the origin.

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

    Statement uses: Eq, Set, Complex, Mandelbrot.mandelbrotSet, Set.ofPred, Nat, LE.le, Real, Norm.norm, Nat.iterate, HAdd.hAdd, HPow.hPow, OfNat.ofNat

    Proof uses: Eq.mp, Mandelbrot.multibrotSet, Inv.inv, HSub.hSub, congrArg, funext, forall_congr, Eq.trans, Mathlib.Meta.NormNum.isNat_eq_true, Mathlib.Meta.NormNum.instAddMonoidWithOne, Mathlib.Meta.NormNum.IsInt.to_isNat, Mathlib.Meta.NormNum.isInt_sub, Int.ofNat, Eq.refl, Mathlib.Meta.NormNum.IsNat.to_isInt, Mathlib.Meta.NormNum.isNat_ofNat, Mathlib.Meta.NormNum.instAtLeastTwo, Nat.cast_one, Int, inv_one and 3 more

    55 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem mandelbrotSet_eq : mandelbrotSet = {c | ∀ k, ‖(fun z ↦ z ^ 2 + c)^[k] 0‖ ≤ 2} := by
    …

    Mentions: Mandelbrot.mandelbrotSet, c

  5. theorem Mandelbrot.MLC The MLC conjecture, stating that the mandelbrot set is locally connected sorry line 111 source

    Source documentation

    The MLC conjecture, stating that the mandelbrot set is locally connected.

    depends on sorry what this means

    Statement uses: LocallyConnectedSpace, Complex, Mandelbrot.mandelbrotSet, Membership.mem, Set

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

    21 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem MLC : LocallyConnectedSpace mandelbrotSet := by
    …

    Mentions: Mandelbrot.mandelbrotSet

  6. theorem Mandelbrot.MLC_general_exponent A stronger version of the MLC conjecture, stating that all multibrots are locally connected sorry line 118 source

    Source documentation

    A stronger version of the MLC conjecture, stating that all multibrots are locally connected. Note that we don't need to require 2 ≤ n because the conjecture holds in the trivial cases n = 0 and n = 1 too.

    depends on sorry what this means

    Statement uses: Nat, LocallyConnectedSpace, Complex, Mandelbrot.multibrotSet, Membership.mem, Set

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

    21 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem MLC_general_exponent (n : ℕ) : LocallyConnectedSpace (multibrotSet n) := by
    …

    Mentions: Mandelbrot.multibrotSet

  7. def Mandelbrot.IsAttractingCycle Documented declaration: IsAttractingCycle line 124 source

    Source documentation

    We say that z : ℂ is part of an attracting cycle of period n of f : ℂ → ℂ if it is an n-periodic point (i.e. f^[n] z = z), f^[n] is differentiable at z, ‖deriv f^[n] z‖ is strictly less than one, and n > 0.

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

    Statement uses: Complex, Nat

    Proof uses: And, LT.lt, OfNat.ofNat, Function.IsPeriodicPt, DifferentiableAt, Nat.iterate, Real, Norm.norm, deriv

    22 instances, coercions and auxiliary constants left out.

    def IsAttractingCycle (f : ℂ → ℂ) (n : ℕ) (z : ℂ) : Prop :=
    …
  8. theorem Mandelbrot.isAttractingCycle_z_squared_minus_one For example, 0 is part of an attracting 2-cycle of z ↦ z ^ 2 - 1 line 129 source

    Source documentation

    For example, 0 is part of an attracting 2-cycle of z ↦ z ^ 2 - 1.

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

    Statement uses: Mandelbrot.IsAttractingCycle, Complex, HSub.hSub, HPow.hPow, Nat, OfNat.ofNat

    Proof uses: And.intro, LT.lt, And, Function.IsPeriodicPt, DifferentiableAt, Nat.iterate, Real, Norm.norm, deriv, of_decide_eq_true, id, Eq, Bool, Decidable.decide, Bool.true, Eq.refl, of_eq_true, Eq.trans, True, congrFun' and 33 more

    140 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

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

    theorem isAttractingCycle_z_squared_minus_one : IsAttractingCycle (fun z ↦ z ^ 2 - 1) 2 0 :=
    …

    Mentions: Mandelbrot.IsAttractingCycle

  9. theorem Mandelbrot.not_isAttractingCycle_z_squared_minus_two On the other hand, while 2 is part of a 1-cycle of z ↦ z ^ 2 - 2, that cycle is not attracting line 135 source

    Source documentation

    On the other hand, while 2 is part of a 1-cycle of z ↦ z ^ 2 - 2, that cycle is not attracting.

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

    Statement uses: Not, Mandelbrot.IsAttractingCycle, Complex, HSub.hSub, HPow.hPow, Nat, OfNat.ofNat

    Proof uses: of_eq_true, Eq.trans, Function.IsPeriodicPt, LT.lt, Real, HMul.hMul, True, And, congrArg, DifferentiableAt, Nat.iterate, Norm.norm, deriv, congr, Eq, eq_self, congrFun', Function.iterate_one, deriv_fun_sub, deriv_fun_pow and 21 more

    125 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem not_isAttractingCycle_z_squared_minus_two : ¬ IsAttractingCycle (fun z ↦ z ^ 2 - 2) 1 2 := by
    …

    Mentions: Mandelbrot.IsAttractingCycle

  10. theorem Mandelbrot.no_attractingCycle_period_zero No function has an attracting cycle of period 0 line 141 source

    Source documentation

    No function has an attracting cycle of period 0. This is important in that it means we don't need to require 0 < n in the conjectures below.

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

    Statement uses: Complex, Not, Mandelbrot.IsAttractingCycle, OfNat.ofNat, Nat

    Proof uses: of_eq_true, Eq.trans, False, True, congrArg, And, LT.lt, Function.IsPeriodicPt, DifferentiableAt, Nat.iterate, Real, Norm.norm, deriv, congr, congrFun', congrFun, id, deriv_id', NormOneClass.norm_one, and_false and 2 more

    37 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem no_attractingCycle_period_zero (f : ℂ → ℂ) (z : ℂ) : ¬ IsAttractingCycle f 0 z := by
    …

    Mentions: Mandelbrot.IsAttractingCycle

  11. theorem Mandelbrot.density_of_hyperbolicity The density of hyperbolicity conjecture, stating that the set of all parameters c for which fun z ↦ z ^ 2 + c has an attracting cycle is dense in the Mandelbrot set sorry line 147 source

    Source documentation

    The density of hyperbolicity conjecture, stating that the set of all parameters c for which fun z ↦ z ^ 2 + c has an attracting cycle is dense in the Mandelbrot set.

    depends on sorry what this means

    Statement uses: LE.le, Set, Complex, Mandelbrot.mandelbrotSet, closure, Set.ofPred, Exists, Nat, Mandelbrot.IsAttractingCycle, HAdd.hAdd, HPow.hPow, OfNat.ofNat

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

    32 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem density_of_hyperbolicity :
        mandelbrotSet ⊆ closure {c | ∃ m z, IsAttractingCycle (fun z ↦ z ^ 2 + c) m z} := by
    …

    Mentions: Mandelbrot.mandelbrotSet, c, Mandelbrot.IsAttractingCycle

  12. theorem Mandelbrot.density_of_hyperbolicity_general_exponent Documented declaration: density_of_hyperbolicity_general_exponent sorry line 155 source

    Source documentation

    The density of hyperbolicity conjecture for Multibrot sets, stating that the set of all parameters c for which fun z ↦ z ^ n + c has an attracting cycle is dense in multibrotSet n. Note that we need to require 2 ≤ n because the conjecture is trivially false for n = 1.

    depends on sorry what this means

    Statement uses: Nat, LE.le, OfNat.ofNat, Set, Complex, Mandelbrot.multibrotSet, closure, Set.ofPred, Exists, Mandelbrot.IsAttractingCycle, HAdd.hAdd, HPow.hPow

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

    34 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem density_of_hyperbolicity_general_exponent {n : ℕ} (hn : 2 ≤ n) :
        multibrotSet n ⊆ closure {c | ∃ m z, IsAttractingCycle (fun z ↦ z ^ n + c) m z} := by
    …

    Mentions: Mandelbrot.multibrotSet, c, Mandelbrot.IsAttractingCycle

  13. theorem Mandelbrot.multibrotSet_frontier_measurable The boundary of any Multibrot set is measurable because it is closed, so it makes sense to ask about its area line 162 source

    Source documentation

    The boundary of any Multibrot set is measurable because it is closed, so it makes sense to ask about its area.

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

    Statement uses: Nat, MeasurableSet, Complex, frontier, Mandelbrot.multibrotSet

    Proof uses: IsClosed.measurableSet, isClosed_frontier

    18 instances, coercions and auxiliary constants left out.

    theorem multibrotSet_frontier_measurable {n : ℕ} : MeasurableSet (frontier (multibrotSet n)) := isClosed_frontier.measurableSet
    …

    Mentions: Mandelbrot.multibrotSet

  14. theorem Mandelbrot.volume_frontier_mandelbrotSet_eq_zero The boundary of the Mandelbrot set is conjectured to have zero area sorry line 166 source

    Source documentation

    The boundary of the Mandelbrot set is conjectured to have zero area.

    depends on sorry what this means

    Statement uses: Eq, ENNReal, MeasureTheory.Measure, Complex, Set, MeasureTheory.MeasureSpace.volume, frontier, Mandelbrot.mandelbrotSet, OfNat.ofNat

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

    37 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem volume_frontier_mandelbrotSet_eq_zero : volume (frontier mandelbrotSet) = 0 := by
    …

    Mentions: Mandelbrot.mandelbrotSet

  15. theorem Mandelbrot.volume_frontier_multibrotSet_eq_zero The boundary of any Multibrot set is conjectured to have zero area sorry line 173 source

    Source documentation

    The boundary of any Multibrot set is conjectured to have zero area. Note that we don't need to exclude the trivial cases n = 0 and n = 1 because the conjecture holds for them.

    depends on sorry what this means

    Statement uses: Nat, Eq, ENNReal, MeasureTheory.Measure, Complex, Set, MeasureTheory.MeasureSpace.volume, frontier, Mandelbrot.multibrotSet, OfNat.ofNat

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

    37 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem volume_frontier_multibrotSet_eq_zero {n : ℕ} : volume (frontier (multibrotSet n)) = 0 := by
    …

    Mentions: Mandelbrot.multibrotSet