Documentation

TauCeti.GroupTheory.GroupAlgGeom.AlgebraicSet

Algebraic sets, radicals and coordinate groups over a group #

Let H be a group receiving the coefficients G through ι : G →* H. A system of equations over G in the variables X is a subset S ⊆ G[X], and its solutions in H form the algebraic set V_H(S) ⊆ H^X. Conversely the equations vanishing on a set of points Y ⊆ H^X form a normal subgroup I_H(Y) of G[X], the ideal of Y. These two operations are the upper and lower polars of the relation eval ι v s = 1, so they form an antitone Galois connection. The radical Rad_H(S) = I_H(V_H(S)) of S is the largest system with the same solutions as S; it contains the normal closure of S, generally strictly.

A G-homomorphism from a quotient G[X] ⧸ N to H is the same as a point of H^X at which every equation of N vanishes. Quotienting G[X] by the radical gives the coordinate group G_{R(S)} of S, while quotienting by the normal closure gives the group G_S presented by the system itself; there is a surjection G_S →* G_{R(S)} compatible with the coefficients. When ι is injective and S has a solution in H, both coefficient maps are injective, so G_{R(S)} is a G-group.

The radical genuinely depends on the group H in which the solutions are taken, and differs from the normal closure: over a torsion-free H with injective coefficients, the radical of the one-variable system x ^ n = 1 (n ≠ 0) is the normal closure of x, which does not lie in the normal closure of x ^ n when n ≠ 1.

Main definitions #

Main results #

References #

Algebraic sets and ideals #

def TauCeti.GroupAlgGeom.V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :
Set (X → H)

The algebraic set V_H(S) ⊆ H^X of a system of equations S ⊆ G[X]: the points v : X → H at which every equation of S evaluates to 1.

Instances For
    def TauCeti.GroupAlgGeom.I {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (Y : Set (X → H)) :
    Subgroup (GX G X)

    The ideal I_H(Y) of a set of points Y ⊆ H^X: the equations of G[X] vanishing at every point of Y. It is a normal subgroup of G[X].

    Instances For
      @[simp]
      theorem TauCeti.GroupAlgGeom.mem_V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {v : X → H} :
      v ∈ V ι S ↔ ∀ s ∈ S, (eval ι v) s = 1
      @[simp]
      theorem TauCeti.GroupAlgGeom.mem_I {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {Y : Set (X → H)} {w : GX G X} :
      w ∈ I ι Y ↔ ∀ v ∈ Y, (eval ι v) w = 1
      instance TauCeti.GroupAlgGeom.instNormalGXI {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (Y : Set (X → H)) :
      (I ι Y).Normal
      theorem TauCeti.GroupAlgGeom.I_eq_iInf_ker {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (Y : Set (X → H)) :
      I ι Y = ⨅ v ∈ Y, (eval ι v).ker

      The ideal of Y is the intersection of the kernels of evaluation at the points of Y.

      theorem TauCeti.GroupAlgGeom.subset_I_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {Y : Set (X → H)} :
      S ⊆ ↑(I ι Y) ↔ Y ⊆ V ι S

      A system vanishes on a set of points if and only if the points solve the system.

      theorem TauCeti.GroupAlgGeom.galoisConnection_V_I {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) :
      GaloisConnection (fun (S : Set (GX G X)) => OrderDual.toDual (V ι S)) fun (Y : (Set (X → H))ᵒᵈ) => ↑(I ι (OrderDual.ofDual Y))

      Algebraic sets and ideals form an antitone Galois connection between systems of equations in G[X] and sets of points in H^X.

      theorem TauCeti.GroupAlgGeom.V_antitone {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) :
      Antitone (V ι)
      theorem TauCeti.GroupAlgGeom.I_antitone {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) :
      Antitone (I ι)
      theorem TauCeti.GroupAlgGeom.subset_V_I {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (Y : Set (X → H)) :
      Y ⊆ V ι ↑(I ι Y)
      @[simp]
      theorem TauCeti.GroupAlgGeom.V_I_V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
      V ι ↑(I ι (V ι S)) = V ι S

      The algebraic set of the equations vanishing on an algebraic set is that algebraic set.

      @[simp]
      theorem TauCeti.GroupAlgGeom.I_V_I {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (Y : Set (X → H)) :
      I ι (V ι ↑(I ι Y)) = I ι Y
      @[simp]
      theorem TauCeti.GroupAlgGeom.V_empty {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} :
      @[simp]
      theorem TauCeti.GroupAlgGeom.I_empty {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} :
      I ι ∅ = ⊤
      @[simp]
      theorem TauCeti.GroupAlgGeom.V_union {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S T : Set (GX G X)) :
      V ι (S ∪ T) = V ι S ∩ V ι T
      @[simp]
      theorem TauCeti.GroupAlgGeom.V_iUnion {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {κ : Sort u_4} (S : κ → Set (GX G X)) :
      V ι (⋃ (k : κ), S k) = ⋂ (k : κ), V ι (S k)
      theorem TauCeti.GroupAlgGeom.preimage_wordMap_V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {Y : Type u_4} (w : Y → GX G X) (S : Set (GX G Y)) :
      wordMap ι w ⁻¹' V ι S = V ι (⇑(eval Monoid.Coprod.inl w) '' S)

      Pulling an algebraic set back along a tuple of words substitutes those words into its equations.

      theorem TauCeti.GroupAlgGeom.preimage_wordMap_V_eq_V_image {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (T : Set (GX G Y)) :
      (wordMap ι fun (y : Y) => σ (Monoid.Coprod.inr (FreeGroup.of y))) ⁻¹' V ι T = V ι (⇑σ '' T)

      The inverse image of a solution set under the tuple word map is the solution set of the image system.

      theorem TauCeti.GroupAlgGeom.wordMap_mem_V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (S : Set (GX G X)) (v : X → H) (hv : v ∈ V ι S) :
      wordMap ι (fun (y : Y) => σ (Monoid.Coprod.inr (FreeGroup.of y))) v ∈ V ι (⇑σ ⁻¹' S)

      A word map sends solutions to solutions of the inverse-image system.

      theorem TauCeti.GroupAlgGeom.wordMap_mem_V_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (hσ : Function.Surjective ⇑σ) (S : Set (GX G X)) (v : X → H) :
      wordMap ι (fun (y : Y) => σ (Monoid.Coprod.inr (FreeGroup.of y))) v ∈ V ι (⇑σ ⁻¹' S) ↔ v ∈ V ι S

      A tuple solves S exactly when its word map solves the inverse-image system.

      theorem TauCeti.GroupAlgGeom.singleton_comp_eq_V {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (g : X → G) :
      {⇑ι ∘ g} = V ι (Set.range fun (x : X) => Monoid.Coprod.inr (FreeGroup.of x) * (Monoid.Coprod.inl (g x))⁻¹)

      The singleton of a tuple of coefficients is the solution set of the equations specifying all its coordinates.

      theorem TauCeti.GroupAlgGeom.V_singleton_inl_eq_empty {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {g : G} (hg : ι g ≠ 1) :

      If some coefficient remains nontrivial in H, an equation with that constant has no solutions.

      @[simp]
      theorem TauCeti.GroupAlgGeom.I_union {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (Y Z : Set (X → H)) :
      I ι (Y ∪ Z) = I ι Y ⊓ I ι Z
      @[simp]
      theorem TauCeti.GroupAlgGeom.I_iUnion {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {κ : Sort u_4} (Y : κ → Set (X → H)) :
      I ι (⋃ (k : κ), Y k) = ⨅ (k : κ), I ι (Y k)
      @[simp]
      theorem TauCeti.GroupAlgGeom.V_normalClosure {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
      V ι ↑(Subgroup.normalClosure S) = V ι S

      A system and its normal closure have the same solutions.

      Finite subsystems #

      theorem TauCeti.GroupAlgGeom.exists_finite_V_eq_of_map {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {G' : Type u_4} {Y : Type u_5} [Group G'] {ι : G →* H} {ι' : G' →* H} (m : GX G X →* GX G' Y) (θ : (X → H) → Y → H) (hθ : ∀ (v : X → H) (s : GX G X), (eval ι' (θ v)) (m s) = (eval ι v) s) {S : Set (GX G X)} (h : ∃ T ⊆ ⇑m '' S, T.Finite ∧ V ι' T = V ι' (⇑m '' S)) :
      ∃ S₀ ⊆ S, S₀.Finite ∧ V ι S₀ = V ι S

      A homomorphism m : G[X] →* G'[Y] together with a map of points θ compatible with evaluation carries finite subsystems of m(S) with the same solutions back to finite subsystems of S with the same solutions.

      theorem TauCeti.GroupAlgGeom.exists_finite_V_eq_of_finite {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} [Finite (X → H)] (S : Set (GX G X)) :
      ∃ S₀ ⊆ S, S₀.Finite ∧ V ι S₀ = V ι S

      If there are only finitely many points X → H, every system is equivalent to a finite subsystem: one equation failing at each non-solution suffices.

      theorem TauCeti.GroupAlgGeom.exists_subsingleton_V_eq {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} [Subsingleton (X → H)] (S : Set (GX G X)) :
      ∃ S₀ ⊆ S, S₀.Subsingleton ∧ V ι S₀ = V ι S

      If there is at most one point X → H, for instance when there are no variables, a single equation suffices: a system with a solution is equivalent to the empty subsystem, and a system without one is equivalent to any of its equations that fails at the point.

      Radicals #

      def TauCeti.GroupAlgGeom.Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :
      Subgroup (GX G X)

      The radical Rad_H(S) = I_H(V_H(S)) of a system S ⊆ G[X] over H: the equations satisfied by every solution of S in H.

      Instances For
        theorem TauCeti.GroupAlgGeom.Rad_def {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        Rad ι S = I ι (V ι S)
        @[simp]
        theorem TauCeti.GroupAlgGeom.mem_Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {w : GX G X} :
        w ∈ Rad ι S ↔ ∀ v ∈ V ι S, (eval ι v) w = 1
        instance TauCeti.GroupAlgGeom.instNormalGXRad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        (Rad ι S).Normal
        theorem TauCeti.GroupAlgGeom.subset_Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        S ⊆ ↑(Rad ι S)
        theorem TauCeti.GroupAlgGeom.normalClosure_le_Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :

        The radical of S contains the normal closure of S.

        theorem TauCeti.GroupAlgGeom.Rad_monotone {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) :
        @[simp]
        theorem TauCeti.GroupAlgGeom.V_Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        V ι ↑(Rad ι S) = V ι S
        @[simp]
        theorem TauCeti.GroupAlgGeom.Rad_Rad {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        Rad ι ↑(Rad ι S) = Rad ι S

        Taking radicals is idempotent.

        @[simp]
        theorem TauCeti.GroupAlgGeom.Rad_normalClosure {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
        @[simp]
        theorem TauCeti.GroupAlgGeom.Rad_empty {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} :
        theorem TauCeti.GroupAlgGeom.I_singleton_comp {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (hι : Function.Injective ⇑ι) (g : X → G) :

        For injective coefficients, the ideal of a point ι ∘ g with coordinates in the image of G is the normal closure of the equations x (g x)⁻¹, x ∈ X.

        Quotients of G[X] #

        def TauCeti.GroupAlgGeom.GX.quotientCoeff {G : Type u_1} {X : Type u_3} [Group G] (N : Subgroup (GX G X)) [N.Normal] :
        G →* GX G X ⧸ N

        The coefficient homomorphism G →* G[X] ⧸ N of a quotient of G[X].

        Instances For
          @[simp]
          theorem TauCeti.GroupAlgGeom.GX.quotientCoeff_apply {G : Type u_1} {X : Type u_3} [Group G] (N : Subgroup (GX G X)) [N.Normal] (g : G) :
          theorem TauCeti.GroupAlgGeom.GX.comp_mk'_comp_inl {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (φ : GHom (quotientCoeff N) ι) :

          A G-homomorphism G[X] ⧸ N → H, composed with the quotient map, restricts to ι on the coefficients.

          theorem TauCeti.GroupAlgGeom.GX.eval_eq_comp_mk' {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (φ : GHom (quotientCoeff N) ι) :
          (eval ι fun (x : X) => φ ↑(Monoid.Coprod.inr (FreeGroup.of x))) = (↑φ).comp (QuotientGroup.mk' N)

          A G-homomorphism G[X] ⧸ N → H, composed with the quotient map, is evaluation at its values on the variables.

          def TauCeti.GroupAlgGeom.GX.quotientEvalGHom {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (v : X → H) {N : Subgroup (GX G X)} [N.Normal] (hv : v ∈ V ι ↑N) :

          Evaluation at a point v at which every equation of N vanishes, as a G-homomorphism G[X] ⧸ N → H.

          Instances For
            @[simp]
            theorem TauCeti.GroupAlgGeom.GX.quotientEvalGHom_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {v : X → H} {N : Subgroup (GX G X)} [N.Normal] (hv : v ∈ V ι ↑N) (w : GX G X) :
            (quotientEvalGHom v hv) ↑w = (eval ι v) w
            def TauCeti.GroupAlgGeom.GX.quotientHomEquiv {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (N : Subgroup (GX G X)) [N.Normal] :
            GHom (quotientCoeff N) ι ≃ ↑(V ι ↑N)

            The universal property of a quotient G[X] ⧸ N: G-homomorphisms G[X] ⧸ N → H correspond to the points of H^X at which every equation of N vanishes, by restriction to the variables and by evaluation.

            Instances For
              @[simp]
              theorem TauCeti.GroupAlgGeom.GX.quotientHomEquiv_apply_coe {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (φ : GHom (quotientCoeff N) ι) (x : X) :
              ↑((quotientHomEquiv ι N) φ) x = φ ↑(Monoid.Coprod.inr (FreeGroup.of x))
              theorem TauCeti.GroupAlgGeom.GX.eval_quotientHomEquiv {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (φ : GHom (quotientCoeff N) ι) (w : GX G X) :
              (eval ι ↑((quotientHomEquiv ι N) φ)) w = φ ↑w

              Evaluation at the point corresponding to a G-homomorphism φ : G[X] ⧸ N → H is φ composed with the quotient map.

              @[simp]
              theorem TauCeti.GroupAlgGeom.GX.quotientHomEquiv_symm_apply {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (v : ↑(V ι ↑N)) :
              theorem TauCeti.GroupAlgGeom.GX.quotientGHom_ext {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] {φ ψ : GHom (quotientCoeff N) ι} (h : ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))) :
              φ = ψ

              A G-homomorphism out of G[X] ⧸ N is determined by its values on the variables.

              theorem TauCeti.GroupAlgGeom.GX.quotientGHom_ext_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] {φ ψ : GHom (quotientCoeff N) ι} :
              φ = ψ ↔ ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))
              theorem TauCeti.GroupAlgGeom.GX.quotientCoeff_injective {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {N : Subgroup (GX G X)} [N.Normal] (hι : Function.Injective ⇑ι) (hN : (V ι ↑N).Nonempty) :

              If ι is injective and the equations of N have a common zero in H, the coefficients embed in G[X] ⧸ N.

              theorem TauCeti.GroupAlgGeom.GX.exists_bijective_gHom_of_eq_ker {G : Type u_1} {X : Type u_3} [Group G] {N : Subgroup (GX G X)} [N.Normal] {K : Type u_4} [Group K] {κ : G →* K} (π : GHom Monoid.Coprod.inl κ) (hπ : Function.Surjective ⇑π) (hN : N = (↑π).ker) :
              ∃ (ψ : GHom (quotientCoeff N) κ), Function.Bijective ⇑ψ ∧ ∀ (w : GX G X), ψ ↑w = π w

              A surjective G-homomorphism π : G[X] →* K induces a G-isomorphism G[X] ⧸ N → K from the quotient by its kernel N.

              Coordinate groups and the group of a system #

              @[reducible, inline]
              abbrev TauCeti.GroupAlgGeom.CoordGroup {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :
              Type (max u_3 u_1)

              The coordinate group G_{R(S)} = G[X] ⧸ Rad_H(S) of a system S over H.

              Instances For
                def TauCeti.GroupAlgGeom.CoordGroup.coeff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :

                The coefficient homomorphism G →* G_{R(S)}.

                Instances For
                  theorem TauCeti.GroupAlgGeom.CoordGroup.coeff_def {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
                  @[simp]
                  theorem TauCeti.GroupAlgGeom.CoordGroup.coeff_apply {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) (g : G) :
                  (coeff ι S) g = ↑(Monoid.Coprod.inl g)
                  def TauCeti.GroupAlgGeom.CoordGroup.evalGHom {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (v : X → H) (hv : v ∈ V ι S) :
                  GHom (coeff ι S) ι

                  Evaluation at a solution v of S in H, as a G-homomorphism G_{R(S)} → H.

                  Instances For
                    @[simp]
                    theorem TauCeti.GroupAlgGeom.CoordGroup.evalGHom_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {v : X → H} (hv : v ∈ V ι S) (w : GX G X) :
                    (evalGHom v hv) ↑w = (eval ι v) w
                    def TauCeti.GroupAlgGeom.CoordGroup.homEquiv {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :
                    GHom (coeff ι S) ι ≃ ↑(V ι S)

                    The universal property of the coordinate group: G-homomorphisms G_{R(S)} → H correspond to the solutions of S in H, by restriction to the variables and by evaluation.

                    Instances For
                      @[simp]
                      theorem TauCeti.GroupAlgGeom.CoordGroup.homEquiv_apply_coe {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (φ : GHom (coeff ι S) ι) (x : X) :
                      ↑((homEquiv ι S) φ) x = φ ↑(Monoid.Coprod.inr (FreeGroup.of x))
                      @[simp]
                      theorem TauCeti.GroupAlgGeom.CoordGroup.homEquiv_symm_apply {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (v : ↑(V ι S)) :
                      (homEquiv ι S).symm v = evalGHom ↑v ⋯
                      @[simp]
                      theorem TauCeti.GroupAlgGeom.CoordGroup.eval_homEquiv {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) (φ : GHom (coeff ι S) ι) (w : GX G X) :
                      (eval ι ↑((homEquiv ι S) φ)) w = φ ↑w

                      Evaluation at a solution agrees with the corresponding coordinate-group homomorphism.

                      theorem TauCeti.GroupAlgGeom.CoordGroup.gHom_ext {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {K : Type u_4} [Group K] {κ : G →* K} {φ ψ : GHom (coeff ι S) κ} (h : ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))) :
                      φ = ψ

                      A G-homomorphism out of G_{R(S)} is determined by its values on the variables.

                      theorem TauCeti.GroupAlgGeom.CoordGroup.gHom_ext_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {K : Type u_4} [Group K] {κ : G →* K} {φ ψ : GHom (coeff ι S) κ} :
                      φ = ψ ↔ ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))
                      theorem TauCeti.GroupAlgGeom.CoordGroup.coeff_injective {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (hι : Function.Injective ⇑ι) (hS : (V ι S).Nonempty) :

                      If ι is injective and the system S has a solution in H, the coefficients embed in the coordinate group G_{R(S)}.

                      def TauCeti.GroupAlgGeom.CoordGroup.toGGroup {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) {S : Set (GX G X)} (hι : Function.Injective ⇑ι) (hS : (V ι S).Nonempty) :

                      The coordinate group G_{R(S)} of a system with a solution in a G-group H, as a G-group.

                      Instances For
                        @[simp]
                        theorem TauCeti.GroupAlgGeom.CoordGroup.toGGroup_coeff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (hι : Function.Injective ⇑ι) (hS : (V ι S).Nonempty) :
                        (toGGroup ι hι hS).coeff = coeff ι S
                        def TauCeti.GroupAlgGeom.CoordGroup.MapsToWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) :

                        A tuple of words maps the solution set of S into the solution set of T.

                        Instances For
                          theorem TauCeti.GroupAlgGeom.CoordGroup.mapsToWordMap_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) :
                          MapsToWordMap ι S T w ↔ ∀ v ∈ V ι S, wordMap ι w v ∈ V ι T

                          A tuple of words maps solutions of S to solutions of T precisely when its word map does so at every solution.

                          theorem TauCeti.GroupAlgGeom.CoordGroup.Rad_le_comap_of_mapsToWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) (hw : MapsToWordMap ι S T w) :

                          A word map between algebraic sets pulls equations vanishing on the target back to equations vanishing on the source.

                          def TauCeti.GroupAlgGeom.CoordGroup.homOfMapsToWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) (hw : MapsToWordMap ι S T w) :
                          GHom (coeff ι T) (coeff ι S)

                          A word map between algebraic sets induces a coefficient-preserving homomorphism of coordinate groups in the opposite direction.

                          Instances For
                            @[simp]
                            theorem TauCeti.GroupAlgGeom.CoordGroup.homOfMapsToWordMap_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) (hw : MapsToWordMap ι S T w) (t : GX G Y) :
                            (homOfMapsToWordMap ι S T w hw) ↑t = ↑((eval Monoid.Coprod.inl w) t)
                            theorem TauCeti.GroupAlgGeom.CoordGroup.homEquiv_comp_homOfMapsToWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (S : Set (GX G X)) (T : Set (GX G Y)) (w : Y → GX G X) (hw : MapsToWordMap ι S T w) (v : ↑(V ι S)) :
                            ↑((homEquiv ι T) ((evalGHom ↑v ⋯).comp (homOfMapsToWordMap ι S T w hw))) = wordMap ι w ↑v

                            Evaluating the induced coordinate-group homomorphism at a point is the original word map of that point.

                            def TauCeti.GroupAlgGeom.CoordGroup.homOfWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_5} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (S : Set (GX G X)) :
                            GHom (coeff ι (⇑σ ⁻¹' S)) (coeff ι S)

                            A coefficient-preserving word map induces a homomorphism between coordinate groups.

                            Instances For
                              @[simp]
                              theorem TauCeti.GroupAlgGeom.CoordGroup.homOfWordMap_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_5} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (S : Set (GX G X)) (w : GX G Y) :
                              (homOfWordMap ι σ S) ↑w = ↑(σ w)
                              theorem TauCeti.GroupAlgGeom.CoordGroup.homEquiv_comp_homOfWordMap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_5} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (S : Set (GX G X)) (φ : GHom (coeff ι S) ι) :
                              ↑((homEquiv ι (⇑σ ⁻¹' S)) (φ.comp (homOfWordMap ι σ S))) = wordMap ι (fun (y : Y) => σ (Monoid.Coprod.inr (FreeGroup.of y))) ↑((homEquiv ι S) φ)

                              Precomposition with the coordinate-group word map corresponds to the word map on tuples under the point–homomorphism equivalence.

                              theorem TauCeti.GroupAlgGeom.Rad_preimage_le_comap {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {Y : Type u_4} (ι : G →* H) (σ : GHom Monoid.Coprod.inl Monoid.Coprod.inl) (S : Set (GX G X)) :
                              Rad ι (⇑σ ⁻¹' S) ≤ Subgroup.comap σ.toMonoidHom (Rad ι S)

                              The word homomorphism σ maps the radical of the inverse-image system into the radical of the original system.

                              @[reducible, inline]
                              abbrev TauCeti.GroupAlgGeom.SystemGroup (G : Type u_1) {X : Type u_3} [Group G] (S : Set (GX G X)) :
                              Type (max (max u_1 u_3) u_3 u_1)

                              The group G_S = G[X] ⧸ ncl(S) presented over G by the system S of equations.

                              Instances For
                                def TauCeti.GroupAlgGeom.SystemGroup.coeff {G : Type u_1} {X : Type u_3} [Group G] (S : Set (GX G X)) :

                                The coefficient homomorphism G →* G_S.

                                Instances For
                                  @[simp]
                                  theorem TauCeti.GroupAlgGeom.SystemGroup.coeff_apply {G : Type u_1} {X : Type u_3} [Group G] (S : Set (GX G X)) (g : G) :
                                  def TauCeti.GroupAlgGeom.SystemGroup.toCoordGroup {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :

                                  The canonical surjection G_S →* G_{R(S)}, a G-homomorphism.

                                  Instances For
                                    def TauCeti.GroupAlgGeom.SystemGroup.evalGHom {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (v : X → H) (hv : v ∈ V ι S) :
                                    GHom (coeff S) ι

                                    Evaluation at a solution v of S in H, as a G-homomorphism G_S → H.

                                    Instances For
                                      @[simp]
                                      theorem TauCeti.GroupAlgGeom.SystemGroup.evalGHom_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {v : X → H} (hv : v ∈ V ι S) (w : GX G X) :
                                      (evalGHom v hv) ↑w = (eval ι v) w
                                      def TauCeti.GroupAlgGeom.SystemGroup.homEquiv {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] (ι : G →* H) (S : Set (GX G X)) :
                                      GHom (coeff S) ι ≃ ↑(V ι S)

                                      The universal property of G_S: G-homomorphisms G_S → H correspond to the solutions of S in H, by restriction to the variables and by evaluation.

                                      Instances For
                                        @[simp]
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.homEquiv_apply_coe {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (φ : GHom (coeff S) ι) (x : X) :
                                        ↑((homEquiv ι S) φ) x = φ ↑(Monoid.Coprod.inr (FreeGroup.of x))
                                        @[simp]
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.homEquiv_symm_apply {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (v : ↑(V ι S)) :
                                        (homEquiv ι S).symm v = evalGHom ↑v ⋯
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.gHom_ext {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {φ ψ : GHom (coeff S) ι} (h : ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))) :
                                        φ = ψ

                                        A G-homomorphism out of G_S is determined by its values on the variables.

                                        theorem TauCeti.GroupAlgGeom.SystemGroup.gHom_ext_iff {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {φ ψ : GHom (coeff S) ι} :
                                        φ = ψ ↔ ∀ (x : X), φ ↑(Monoid.Coprod.inr (FreeGroup.of x)) = ψ ↑(Monoid.Coprod.inr (FreeGroup.of x))
                                        @[simp]
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.toCoordGroup_mk {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) (w : GX G X) :
                                        (toCoordGroup ι S) ↑w = ↑w
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.toCoordGroup_surjective {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} (S : Set (GX G X)) :
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.coeff_injective {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (hι : Function.Injective ⇑ι) (hS : (V ι S).Nonempty) :

                                        If ι is injective and the system S has a solution in H, the coefficients embed in G_S.

                                        @[simp]
                                        theorem TauCeti.GroupAlgGeom.SystemGroup.homEquiv_comp_toCoordGroup {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} (φ : GHom (CoordGroup.coeff ι S) ι) :
                                        (homEquiv ι S) (φ.comp (toCoordGroup ι S)) = (CoordGroup.homEquiv ι S) φ

                                        Restricting a G-homomorphism G_{R(S)} → H along G_S → G_{R(S)} gives the same solution of S.

                                        @[simp]
                                        theorem TauCeti.GroupAlgGeom.CoordGroup.evalGHom_comp_toCoordGroup {G : Type u_1} {H : Type u_2} {X : Type u_3} [Group G] [Group H] {ι : G →* H} {S : Set (GX G X)} {v : X → H} (hv : v ∈ V ι S) :

                                        Evaluation at a solution v on G_S factors through G_S → G_{R(S)}.

                                        The radical is not the normal closure #

                                        Over a torsion-free group H with injective coefficients, the radical of the one-variable equation x ^ n = 1 (n ≠ 0) is the normal closure of x.

                                        The normal closure of the one-variable equation x ^ n does not contain x when n ≠ 1.

                                        For n ≠ 1, the normal closure of x ^ n differs from the normal closure of x.

                                        The radical depends on the group in which solutions are taken: over G = F(a, b), the variable x lies in the radical of x² over G, but not over G × ℤ/2, where (1, 1) is a nontrivial solution of x² = 1.