Module

Congruence.lean

Nyll.ProCGroups.ReidemeisterSchreier.Discrete.Presentations.Relators.Congruence
17 declarations indexed from sourceView source ↗

Relator maps and normal-closure congruence

This module transports normal-closure membership and relator equivalence through inclusions, homomorphisms, and indexed unions of relator families.

Declarations

ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_of_subset

Membership in a normal closure is preserved when the relator set is enlarged.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_of_subset
    (hR_to_S : R ⊆ S) {x : G}
    (hx : x ∈ Subgroup.normalClosure R) :
    x ∈ Subgroup.normalClosure S
ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_union_left

Membership in the left normal closure implies membership in the normal closure of the union.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_union_left
    {x : G} (hx : x ∈ Subgroup.normalClosure R) :
    x ∈ Subgroup.normalClosure (R ∪ S)
ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_union_right

Membership in the right normal closure implies membership in the normal closure of the union.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_union_right
    {x : G} (hx : x ∈ Subgroup.normalClosure S) :
    x ∈ Subgroup.normalClosure (R ∪ S)
ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_iUnion

Membership in one indexed normal closure implies membership in the normal closure of the indexed union.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_iUnion
    {ι : Sort*} (R : ι → Set G) (i : ι)
    {x : G} (hx : x ∈ Subgroup.normalClosure (R i)) :
    x ∈ Subgroup.normalClosure (Set.iUnion R)
ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_iUnion₂

Membership in one doubly indexed normal closure implies membership in the normal closure of the doubly indexed union.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_iUnion₂
    {ι : Sort*} {κ : ι → Sort*}
    (R : ∀ i : ι, κ i → Set G) (i : ι) (j : κ i)
    {x : G} (hx : x ∈ Subgroup.normalClosure (R i j)) :
    x ∈ Subgroup.normalClosure
        (Set.iUnion fun i : ι => Set.iUnion (R i)) :=
  mem_normalClosure_of_subset
    (R := R i j)
    (S := Set.iUnion fun i : ι => Set.iUnion (R i))
    (fun _ hy => Set.mem_iUnion.2 ⟨i, Set.mem_iUnion.2 ⟨j, hy⟩⟩) hx
ReidemeisterSchreier.Discrete.Presentations.mem_normalClosure_iUnion₂_of_exists

An explicit pair of indices gives membership in the normal closure of the doubly indexed union.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem mem_normalClosure_iUnion₂_of_exists
    {ι : Sort*} {κ : ι → Sort*}
    (R : ∀ i : ι, κ i → Set G)
    {x : G} (hx : ∃ i : ι, ∃ j : κ i,
      x ∈ Subgroup.normalClosure (R i j)) :
    x ∈ Subgroup.normalClosure
        (Set.iUnion fun i : ι => Set.iUnion (R i)) := by
  rcases hx with ⟨i, j, hij⟩
  exact mem_normalClosure_iUnion₂ (R := R) i j hij
ReidemeisterSchreier.Discrete.Presentations.maps_iUnion_relators_mem_normalClosure

Maps that preserve each indexed relator family send the union of the source relators into the target normal closure.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem maps_iUnion_relators_mem_normalClosure
    {ι : Sort*} (f : G →* H) {R : ι → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ r ∈ R i, f r ∈ Subgroup.normalClosure S) :
    ∀ r ∈ Set.iUnion R, f r ∈ Subgroup.normalClosure S
ReidemeisterSchreier.Discrete.Presentations.maps_iUnion₂_relators_mem_normalClosure

Maps that preserve each doubly indexed relator family send the union of the source relators into the target normal closure.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem maps_iUnion₂_relators_mem_normalClosure
    {ι : Sort*} {κ : ι → Sort*}
    (f : G →* H) {R : ∀ i : ι, κ i → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ j : κ i, ∀ r ∈ R i j,
      f r ∈ Subgroup.normalClosure S) :
    ∀ r ∈ Set.iUnion (fun i : ι => Set.iUnion (R i)),
      f r ∈ Subgroup.normalClosure S := by
  intro r hr
  rcases Set.mem_iUnion.1 hr with ⟨i, hi⟩
  rcases Set.mem_iUnion.1 hi with ⟨j, hj⟩
  exact hR i j r hj
ReidemeisterSchreier.Discrete.Presentations.map_mem_normalClosure_of_relators

A relator-preserving map sends relators into the normal closure of the target relator set.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem map_mem_normalClosure_of_relators
    (f : G →* H) {R : Set G} {S : Set H}
    (hR : ∀ r ∈ R, f r ∈ Subgroup.normalClosure S)
    {x : G} (hx : x ∈ Subgroup.normalClosure R) :
    f x ∈ Subgroup.normalClosure S
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_relators

A homomorphism preserves relator equivalence when each source relator maps into the target normal closure.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_relators
    (f : G →* H) {R : Set G} {S : Set H}
    (hR : ∀ r ∈ R, f r ∈ Subgroup.normalClosure S)
    {u v : G} (h : RelatorEquivalent R u v) :
    RelatorEquivalent S (f u) (f v)
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_relators_relatorEquivalent

A homomorphism preserves relator equivalence when each source relator maps to a target-relator-equivalent trivial word.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_relators_relatorEquivalent
    (f : G →* H) {R : Set G} {S : Set H}
    (hR : ∀ r ∈ R, RelatorEquivalent S (f r) 1)
    {u v : G} (h : RelatorEquivalent R u v) :
    RelatorEquivalent S (f u) (f v)
ReidemeisterSchreier.Discrete.Presentations.map_mem_normalClosure_iUnion_of_relators

A mapped relator from an indexed family lies in the normal closure of the union of the mapped relator families.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem map_mem_normalClosure_iUnion_of_relators
    {ι : Sort*} (f : G →* H) {R : ι → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ r ∈ R i, f r ∈ Subgroup.normalClosure S)
    {x : G} (hx : x ∈ Subgroup.normalClosure (Set.iUnion R)) :
    f x ∈ Subgroup.normalClosure S
ReidemeisterSchreier.Discrete.Presentations.map_mem_normalClosure_iUnion₂_of_relators

A mapped relator from a doubly indexed family lies in the normal closure of the union of the mapped relator families.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem map_mem_normalClosure_iUnion₂_of_relators
    {ι : Sort*} {κ : ι → Sort*}
    (f : G →* H) {R : ∀ i : ι, κ i → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ j : κ i, ∀ r ∈ R i j,
      f r ∈ Subgroup.normalClosure S)
    {x : G}
    (hx : x ∈ Subgroup.normalClosure
      (Set.iUnion fun i : ι => Set.iUnion (R i))) :
    f x ∈ Subgroup.normalClosure S :=
  map_mem_normalClosure_of_relators f
    (maps_iUnion₂_relators_mem_normalClosure f hR) hx
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_iUnion_relators

A homomorphism preserves relator equivalence for an indexed union of relators when every source relator maps into the target normal closure.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_iUnion_relators
    {ι : Sort*} (f : G →* H) {R : ι → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ r ∈ R i, f r ∈ Subgroup.normalClosure S)
    {u v : G} (h : RelatorEquivalent (Set.iUnion R) u v) :
    RelatorEquivalent S (f u) (f v)
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_iUnion_relators_relatorEquivalent

A homomorphism preserves relator equivalence for an indexed union of relators when every source relator maps to a target-relator-equivalent trivial word.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_iUnion_relators_relatorEquivalent
    {ι : Sort*} (f : G →* H) {R : ι → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ r ∈ R i, RelatorEquivalent S (f r) 1)
    {u v : G} (h : RelatorEquivalent (Set.iUnion R) u v) :
    RelatorEquivalent S (f u) (f v)
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_iUnion₂_relators

A homomorphism preserves relator equivalence for a doubly indexed union of relators when every source relator maps into the target normal closure.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_iUnion₂_relators
    {ι : Sort*} {κ : ι → Sort*}
    (f : G →* H) {R : ∀ i : ι, κ i → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ j : κ i, ∀ r ∈ R i j,
      f r ∈ Subgroup.normalClosure S)
    {u v : G}
    (h : RelatorEquivalent
      (Set.iUnion fun i : ι => Set.iUnion (R i)) u v) :
    RelatorEquivalent S (f u) (f v) :=
  hom_relatorEquivalent_of_maps_relators f
    (maps_iUnion₂_relators_mem_normalClosure f hR) h
ReidemeisterSchreier.Discrete.Presentations.hom_relatorEquivalent_of_maps_iUnion₂_relators_relatorEquivalent

A homomorphism preserves relator equivalence for a doubly indexed union of relators when every source relator maps to a target-relator-equivalent trivial word.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
section NormalClosure
variable {R S : Set G} {r a b : G}
theorem hom_relatorEquivalent_of_maps_iUnion₂_relators_relatorEquivalent
    {ι : Sort*} {κ : ι → Sort*}
    (f : G →* H) {R : ∀ i : ι, κ i → Set G} {S : Set H}
    (hR : ∀ i : ι, ∀ j : κ i, ∀ r ∈ R i j,
      RelatorEquivalent S (f r) 1)
    {u v : G}
    (h : RelatorEquivalent
      (Set.iUnion fun i : ι => Set.iUnion (R i)) u v) :
    RelatorEquivalent S (f u) (f v) :=
  hom_relatorEquivalent_of_maps_iUnion₂_relators f
    (fun i j r hr => RelatorEquivalent.mem_normalClosure_of_eq_one (hR i j r hr)) h