LeanPool.Polylean.ConjInvLength.Length #
Integer code for each letter.
Equations
Instances For
@[implicit_reducible]
Equations
- LeanPool.Polylean.instPowWordNat = { pow := fun (w : LeanPool.Polylean.Word) (n : ℕ) => w.pow n }
@[reducible, inline]
Array-backed words used by the memoized length computation.
Instances For
Render an array-backed word by concatenating rendered letters.
Equations
- w.toString = Array.foldl (fun (x : String) (y : LeanPool.Polylean.Letter) => toString x ++ toString y) "" w
Instances For
@[implicit_reducible]
Equations
@[implicit_reducible]
Equations
- LeanPool.Polylean.Wrd.instPowNat = { pow := fun (w : LeanPool.Polylean.Wrd) (n : ℕ) => w.pow n }
Hash function for array-backed words.
Equations
- w.hashfn = Array.foldl (fun (h : UInt64) (i : LeanPool.Polylean.Letter) => mixHash h (hash i)) 7 w
Instances For
@[implicit_reducible]
Equations
Cache for normalized word lengths.
@[irreducible]
def
LeanPool.Polylean.Wrd.splits
(l : Letter)
(w : Wrd)
:
Array { p : Wrd × Wrd // Array.size p.fst + Array.size p.snd < Array.size w }
All splits of an array-backed word around occurrences of a letter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[irreducible]
Memoized conjugation-invariant length candidate for array-backed words.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Memoized length for list-backed words.
Equations
Instances For
@[implicit_reducible]
Equations
- LeanPool.Polylean.instPowWrdLetter = { pow := fun (w : LeanPool.Polylean.Wrd) (l : LeanPool.Polylean.Letter) => w.conj l }