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

8 declarations, 1 contain sorry, 0 declared as axioms

Gottschalk's surjunctivity conjecture

A group $G$ is surjunctive if every injective, continuous, $G$-equivariant map $A^G \to A^G$ (for any finite alphabet $A$) is surjective.

Here equivariance is with respect to the left shift action of $G$ on $A^G$, defined by $(g \cdot x)(h) = x(g^{-1} h)$, and continuity is with respect to the product topology on $A^G$ (where $A$ carries the discrete topology).

Gottschalk's conjecture (1973) states that every group is surjunctive.

References:

Imports (1)
  1. def GottschalkSurjunctivity.shift The left shift of x : G → A by g : G, defined by (shift g x)(h) = x(g⁻¹ * h) line 46 source

    Source documentation

    The left shift of x : G → A by g : G, defined by (shift g x)(h) = x(g⁻¹ * h). This is the standard left shift action of G on A^G. We define it as a plain function rather than a MulAction instance to avoid conflict with the pointwise Pi.instMulAction.

    standard axioms: propext what this means

    Statement uses: Group

    Proof uses: HMul.hMul, Inv.inv

    10 instances, coercions and auxiliary constants left out.

    def shift {A : Type*} (g : G) (x : G → A) : G → A :=
    …
  2. theorem GottschalkSurjunctivity.shift_apply line 50 source

    standard axioms: propext what this means

    Statement uses: Group, Eq, GottschalkSurjunctivity.shift, HMul.hMul, Inv.inv

    Proof uses: rfl

    10 instances, coercions and auxiliary constants left out.

  3. theorem GottschalkSurjunctivity.shift_one line 54 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: Group, Eq, GottschalkSurjunctivity.shift, OfNat.ofNat

    Proof uses: funext, of_eq_true, Eq.trans, True, congrFun', congrArg, HMul.hMul, Inv.inv, inv_one, one_mul, eq_self

    17 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  4. theorem GottschalkSurjunctivity.shift_mul line 59 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: Group, Eq, GottschalkSurjunctivity.shift, HMul.hMul

    Proof uses: funext, of_eq_true, Inv.inv, Eq.trans, True, congrFun', congrArg, mul_inv_rev, mul_assoc, eq_self

    20 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

  5. def GottschalkSurjunctivity.IsShiftEquivariant A map τ : (G → A) → (G → A) is equivariant (with respect to the left shift action) if τ(shift g x) = shift g (τ x) for all g : G and x : G → A line 65 source

    Source documentation

    A map τ : (G → A) → (G → A) is equivariant (with respect to the left shift action) if τ(shift g x) = shift g (τ x) for all g : G and x : G → A.

    standard axioms: propext what this means

    Statement uses: Group

    Proof uses: Eq, GottschalkSurjunctivity.shift

    def IsShiftEquivariant {A : Type*} (τ : (G → A) → (G → A)) : Prop :=
    …
  6. def GottschalkSurjunctivity.IsSurjunctive A group G is surjunctive if for every finite nonempty type A, every injective, continuous, shift-equivariant map (G → A) → (G → A) is also surjective line 73 source

    Source documentation

    A group G is surjunctive if for every finite nonempty type A, every injective, continuous, shift-equivariant map (G → A) → (G → A) is also surjective.

    Continuity is with respect to the product topology on G → A where A carries the discrete topology.

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

    Statement uses: Group

    Proof uses: Fintype, Nonempty, TopologicalSpace, DiscreteTopology, Continuous, GottschalkSurjunctivity.IsShiftEquivariant, Function.Injective, Function.Surjective

    1 instances, coercions and auxiliary constants left out.

    def IsSurjunctive : Prop :=
    …
  7. theorem GottschalkSurjunctivity.gottschalk_surjunctivity_conjecture Gottschalk's surjunctivity conjecture (1973): every group is surjunctive sorry line 85 source

    Source documentation

    Gottschalk's surjunctivity conjecture (1973): every group is surjunctive. That is, for every group G and every finite alphabet A, every injective cellular automaton on A^G is surjective.

    depends on sorry what this means

    Statement uses: Group, GottschalkSurjunctivity.IsSurjunctive

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

    1 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem gottschalk_surjunctivity_conjecture (G : Type) [Group G] :
        IsSurjunctive G := by
    …

    Mentions: GottschalkSurjunctivity.IsSurjunctive

  8. theorem GottschalkSurjunctivity.isSurjunctive_of_finite Every finite group is surjunctive line 92 source

    Source documentation

    Every finite group is surjunctive. This is a classical result: an injective endomorphism of a finite set is surjective.

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

    Statement uses: Group, Finite, GottschalkSurjunctivity.IsSurjunctive

    Proof uses: Fintype, Nonempty, TopologicalSpace, DiscreteTopology, Continuous, GottschalkSurjunctivity.IsShiftEquivariant, Function.Injective, Finite.surjective_of_injective

    3 instances, coercions and auxiliary constants left out.

    Tactic trace: 2 steps

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

    theorem isSurjunctive_of_finite (G : Type) [Group G] [Finite G] :
        IsSurjunctive G := by
    …

    Mentions: GottschalkSurjunctivity.IsSurjunctive