Presentation #
Part of the dependency closure of the small undecidable group constructions.
A letter in a word on n generators. The Boolean records the sign.
Equations
- Undecidability.SignedGenerator n = (Fin n × Bool)
Instances For
A word on n generators.
Equations
Instances For
The empty word.
Equations
Instances For
Formal inverse of a word.
Equations
- w.inverse = List.map (fun (x : Undecidability.SignedGenerator n) => (x.1, !x.2)) (List.reverse w)
Instances For
Formal word inversion is primitive recursive for the standard word encoding.
Concatenate a finite list of words.
Equations
Instances For
Reindex the generators occurring in a word.
Equations
- Undecidability.Word.mapGenerators f w = List.map (fun (x : Undecidability.SignedGenerator n) => (f x.1, x.2)) w
Instances For
Interpret a positive two-letter word by substituting two group words.
Equations
- s₁.substitutePositive s₂ w = List.flatMap (fun (i : Fin 2) => if i = 0 then s₁ else s₂) w
Instances For
Evaluate a syntactic word after choosing values for its generators.
Equations
- Undecidability.Word.eval x w = (FreeGroup.lift x) (FreeGroup.mk w)
Instances For
The group defined by a finite presentation.
Equations
- P.Group = PresentedGroup P.relSet
Instances For
The word problem for a finite presentation.
Equations
- P.wordProblem w = ((PresentedGroup.mk P.relSet) (FreeGroup.mk w) = 1)
Instances For
Evaluate a word in the group defined by a presentation.
Equations
- P.evalWord w = Undecidability.Word.eval (fun (i : Fin n) => PresentedGroup.of i) w
Instances For
Map a presented group by choosing images of its generators and proving that the designated relators hold.
Equations
- P.homOfRelators x h = PresentedGroup.toGroup ⋯
Instances For
A presentation presents the trivial group when every word represents 1.
Equations
- P.presentsTrivial = ∀ (w : Undecidability.Word n), P.wordProblem w
Instances For
A word normally generates the group defined by P.
Equations
- P.NormallyGenerates z = (Subgroup.normalClosure {(PresentedGroup.mk P.relSet) (FreeGroup.mk z)} = ⊤)
Instances For
A finite presentation is trivial when all of its canonical generators are equal to one.
A family of finite presentations is effective when one algorithm computes the
ith relator of the jth presentation from j and i.
Equations
- Undecidability.FP.Effective A = Computable₂ fun (j : ℕ) (i : Fin m) => (A j).relator i
Instances For
An effective Adian--Rabin family for triviality: there is no algorithm deciding which member of the family presents the trivial group.
Equations
- Undecidability.FP.IsAdianRabinFamily A = (Undecidability.FP.Effective A ∧ ¬ComputablePred fun (j : ℕ) => (A j).presentsTrivial)