Module

Basic.lean

Nyll.ProCGroups.ReidemeisterSchreier.Discrete.Presentations.Relators.Basic
40 declarations indexed from sourceView source ↗

Relator equivalence

This module defines equality modulo a relator normal closure and proves its elementary equivalence, congruence, inversion, multiplication, and quotient characterizations.

Declarations

ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent

Equality modulo the normal closure generated by R.

Source context 2 commands

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

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
def RelatorEquivalent (R : Set G) (u v : G) : Prop
ReidemeisterSchreier.Discrete.Presentations.relatorEquivalent_iff_eq_in_presentedQuotient

Relator equivalence is equivalent to equality in the presented quotient.

Source context 2 commands

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

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
theorem relatorEquivalent_iff_eq_in_presentedQuotient {R : Set G} {u v : G} :
    RelatorEquivalent R u v ↔
      ((u : G ⧸ Subgroup.normalClosure R) =
        (v : G ⧸ Subgroup.normalClosure R))
ReidemeisterSchreier.Discrete.Presentations.relatorEquivalent_one_right

Relator equivalence to one on the right is membership in the relator normal closure.

Source context 2 commands

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

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
theorem relatorEquivalent_one_right {R : Set G} {u : G} :
    RelatorEquivalent R u 1 ↔ u ∈ Subgroup.normalClosure R
ReidemeisterSchreier.Discrete.Presentations.relatorEquivalent_one_left

Relator equivalence from one on the left is membership in the relator normal closure.

Source context 2 commands

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

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
theorem relatorEquivalent_one_left {R : Set G} {u : G} :
    RelatorEquivalent R 1 u ↔ u ∈ Subgroup.normalClosure R
ReidemeisterSchreier.Discrete.Presentations.relatorEquivalentSetoid

Relator equivalence defines a setoid on the free group.

Source context 2 commands

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

namespace ReidemeisterSchreier.Discrete.Presentations
variable {G H : Type*} [Group G] [Group H]
def relatorEquivalentSetoid (R : Set G) : Setoid G where
  r := RelatorEquivalent R
  iseqv := by
    refine ⟨?_, ?_, ?_⟩
    · intro u
      rw [relatorEquivalent_iff_eq_in_presentedQuotient]
    · intro u v h
      rw [relatorEquivalent_iff_eq_in_presentedQuotient] at h ⊢
      exact h.symm
    · intro u v w huv hvw
      rw [relatorEquivalent_iff_eq_in_presentedQuotient] at huv hvw ⊢
      exact huv.trans hvw
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.refl

Relator equivalence is reflexive.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem refl (R : Set G) (u : G) : RelatorEquivalent R u u
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.of_eq

Equal relators are relator-equivalent.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem of_eq (h : u = v) : RelatorEquivalent R u v
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.symm

Relator equivalence is symmetric.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem symm (h : RelatorEquivalent R u v) : RelatorEquivalent R v u
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.trans

Relator equivalence is transitive.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem trans (h₁ : RelatorEquivalent R u v) (h₂ : RelatorEquivalent R v w) : RelatorEquivalent
    R u w
theorem

inv

L95 ↗
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.inv

Taking inverses preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem inv (h : RelatorEquivalent R u v) : RelatorEquivalent R u⁻¹ v⁻¹
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul

Multiplication of relator-equivalent words preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul (h₁ : RelatorEquivalent R u v) (h₂ : RelatorEquivalent R a b) :
    RelatorEquivalent R (u * a) (v * b)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.pow

Taking natural powers preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem pow (h : RelatorEquivalent R u v) (n : ℕ) : RelatorEquivalent R (u ^ n) (v ^ n)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.zpow

Taking integer powers preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem zpow (h : RelatorEquivalent R u v) (n : ℤ) : RelatorEquivalent R (u ^ n) (v ^ n)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_eq_one

A product of words relator-equivalent to one is relator-equivalent to one.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_eq_one (h₁ : RelatorEquivalent R u 1) (h₂ : RelatorEquivalent R v 1) :
    RelatorEquivalent R (u * v) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.pow_eq_one

A natural-number power is relator-equivalent to the identity when the base word is relator-equivalent to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem pow_eq_one (h : RelatorEquivalent R u 1) (n : ℕ) :
    RelatorEquivalent R (u ^ n) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.zpow_eq_one

An integer power is relator-equivalent to the identity when the base word is relator-equivalent to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem zpow_eq_one (h : RelatorEquivalent R u 1) (n : ℤ) :
    RelatorEquivalent R (u ^ n) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.inv_eq_one

The inverse of a word is relator-equivalent to one exactly when the word is.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem inv_eq_one (h : RelatorEquivalent R u 1) :
    RelatorEquivalent R u⁻¹ 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.conjugate_pow_eq

Conjugating a power relator gives an equivalent relator.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem conjugate_pow_eq (a u : G) (n : ℕ) :
    (a * u * a⁻¹) ^ n = a * u ^ n * a⁻¹
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_eq_one_iff_eq_inv

A product is trivial modulo the relators exactly when its first factor equals the inverse of the second.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_eq_one_iff_eq_inv :
    RelatorEquivalent R (u * v) 1 ↔ RelatorEquivalent R u v⁻¹
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.eq_inv_of_mul_eq_one

If a product is relator-equivalent to one, the left factor is relator-equivalent to the inverse of the right factor.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem eq_inv_of_mul_eq_one (h : RelatorEquivalent R (u * v) 1) :
    RelatorEquivalent R u v⁻¹
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_eq_one_of_eq_inv

A product is relator-equivalent to the identity when one factor is relator-equivalent to the inverse of the other.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_eq_one_of_eq_inv (h : RelatorEquivalent R u v⁻¹) :
    RelatorEquivalent R (u * v) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.eq_one_of_mul_eq_one_left

If a left product is relator-equivalent to one and the left factor is trivial, the right factor is relator-equivalent to one.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem eq_one_of_mul_eq_one_left
    (hu : RelatorEquivalent R u 1)
    (huv : RelatorEquivalent R (u * v) 1) :
    RelatorEquivalent R v 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.eq_one_of_mul_eq_one_right

If a right product is relator-equivalent to one and the right factor is trivial, the left factor is relator-equivalent to one.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem eq_one_of_mul_eq_one_right
    (huv : RelatorEquivalent R (u * v) 1)
    (hv : RelatorEquivalent R v 1) :
    RelatorEquivalent R u 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_left

Left multiplication by the same word preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_left (h : RelatorEquivalent R u v) (a : G) : RelatorEquivalent R (a * u) (a * v)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_right

Right multiplication by the same word preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_right (h : RelatorEquivalent R u v) (a : G) : RelatorEquivalent R (u * a) (v * a)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.context

Replace a subword inside a two-sided context.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem context (h : RelatorEquivalent R u v) (a b : G) :
    RelatorEquivalent R (a * u * b) (a * v * b)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.conj

Conjugating both sides preserves relator equivalence.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem conj (h : RelatorEquivalent R u v) (a : G) :
    RelatorEquivalent R (a * u * a⁻¹) (a * v * a⁻¹)
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.conj_eq_one

If a word is relator-equivalent to the identity, then every conjugate of it is also relator-equivalent to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem conj_eq_one (h : RelatorEquivalent R u 1) (a : G) :
    RelatorEquivalent R (a * u * a⁻¹) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.conj_pow_eq_one

If a power is relator-equivalent to the identity, then every conjugate of that power is also relator-equivalent to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem conj_pow_eq_one
    {n : ℕ} (h : RelatorEquivalent R (u ^ n) 1) (a : G) :
    RelatorEquivalent R ((a * u * a⁻¹) ^ n) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.of_mem

Every defining relator is equivalent to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem of_mem (hr : r ∈ R) : RelatorEquivalent R r 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.of_mem_normalClosure

Membership in the normal closure gives relator equivalence to the identity.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem of_mem_normalClosure (hr : r ∈ Subgroup.normalClosure R) :
    RelatorEquivalent R r 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mono

Relator equivalence is monotone with respect to enlarging the relator family.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mono (hR_to_S : R ⊆ S) (h : RelatorEquivalent R u v) :
    RelatorEquivalent S u v
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mono_iUnion

Relator equivalence is monotone under an indexed union of 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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mono_iUnion {ι : Sort*} (R : ι → Set G)
    (i : ι) (h : RelatorEquivalent (R i) u v) :
    RelatorEquivalent (Set.iUnion R) u v
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mono_iUnion₂

Relator equivalence is monotone under a doubly indexed union of 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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mono_iUnion₂ {ι : Sort*} {κ : ι → Sort*}
    (R : ∀ i : ι, κ i → Set G)
    (i : ι) (j : κ i) (h : RelatorEquivalent (R i j) u v) :
    RelatorEquivalent (Set.iUnion fun i : ι => Set.iUnion (R i)) u v :=
  mono (R := R i j) (S := Set.iUnion fun i : ι => Set.iUnion (R i))
    (fun _ hx => Set.mem_iUnion.2 ⟨i, Set.mem_iUnion.2 ⟨j, hx⟩⟩) h
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mem_normalClosure_of_eq_one

A relator-equivalence certificate to the identity gives membership in the 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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mem_normalClosure_of_eq_one (h : RelatorEquivalent R r 1) :
    r ∈ Subgroup.normalClosure R
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_inv_mem_normalClosure

If two words are relator-equivalent, then multiplying one by the inverse of the other gives an element of the relator 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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_inv_mem_normalClosure (h : RelatorEquivalent R u v) :
    u * v⁻¹ ∈ Subgroup.normalClosure R
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.div_mem_normalClosure

If two words are relator-equivalent, then their quotient lies in the normal closure of the relators.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem div_mem_normalClosure (h : RelatorEquivalent R u v) :
    u / v ∈ Subgroup.normalClosure R
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.mul_inv_eq_one

Multiplying a word by the inverse of a relator-equivalent word gives a word relator-equivalent to one.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem mul_inv_eq_one (h : RelatorEquivalent R u v) :
    RelatorEquivalent R (u * v⁻¹) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.div_eq_one

A quotient word is relator-equivalent to the identity when its numerator and denominator are relator-equivalent to each other.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem div_eq_one (h : RelatorEquivalent R u v) :
    RelatorEquivalent R (u / v) 1
ReidemeisterSchreier.Discrete.Presentations.RelatorEquivalent.one_eq_of_mem_inv

The identity is equivalent to every defining relator.

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]
namespace RelatorEquivalent
variable {R S : Set G} {u v w a b r : G}
theorem one_eq_of_mem_inv (hr : r ∈ R) : RelatorEquivalent R 1 r