Module

Schreier.lean

Nyll.ProCGroups.ReidemeisterSchreier.Schreier
7 declarations indexed from sourceView source ↗

Reidemeister Schreier / Schreier

This module formalizes Schreier generators and rewriting.

Declarations

ReidemeisterSchreier.Schreier.rankTransform

The Schreier rank transform \(T(r,i)=1+i(r-1)\), with the rank-zero convention.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
def rankTransform (r i : ℕ) : ℕ
ReidemeisterSchreier.Schreier.rankTransform_zero_left

Schreier's rank transform satisfies the displayed cardinal-arithmetic identity.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_zero_left (i : ℕ) : rankTransform 0 i = 0
ReidemeisterSchreier.Schreier.rankTransform_succ

Schreier's rank transform satisfies the displayed cardinal-arithmetic identity.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_succ (r i : ℕ) : rankTransform (r + 1) i = 1 + i * r
ReidemeisterSchreier.Schreier.rankTransform_one_left

Schreier's rank transform satisfies the displayed cardinal-arithmetic identity.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_one_left (i : ℕ) : rankTransform 1 i = 1
ReidemeisterSchreier.Schreier.rankTransform_eq_one_add

For nonzero \(r\), the Schreier rank transform is \(1+i(r-1)\).

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_eq_one_add {r i : ℕ} (hr : r ≠ 0) :
    rankTransform r i = 1 + i * (r - 1)
ReidemeisterSchreier.Schreier.rankTransform_mul_index

Multiplying subgroup indices composes the Schreier rank transform.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_mul_index (r i j : ℕ) :
    rankTransform (rankTransform r i) j = rankTransform r (i * j)
ReidemeisterSchreier.Schreier.rankTransform_mono_left

The Schreier rank transform is monotone in the rank variable.

Source context 2 commands

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

namespace ReidemeisterSchreier
namespace Schreier
theorem rankTransform_mono_left {r s i : ℕ} (hrs : r ≤ s) :
    rankTransform r i ≤ rankTransform s i