# General Tasks: - [ ] Create text-file interface for kbmag (e.g. from https://github.com/bprzybylski/KBmag.jl/blob/master/src/BinWrapper.jl) - [x] fixed set of benchmarks (easy = <2s, medium = <30s, hard = Inf) to compare (#67) - [x] try running the same examples with KnuthBendix.jl and collect timing (#67) - [x] identify the bottlenecks (profiling etc.) (see #66) - [ ] collect some statistics live? - [ ] can we multithread the main loop? - [ ] can we multithread the reduction part (or just make it faster?)? # Functional changes - [ ] Store `isconfluent`, `isreduced` in rewriting system for quick retrieval - [ ] Implement `PrefixAutomaton` rewriting - [ ] start using other options from `KnuthBendix.Settings - [ ] different `reduce` algorithm ? - [ ] `KBS3Alg` with different strategy finding shortest rules first e.g. ```julia min_overlap = 100 while min_overlap > 0 rws = knuthbendix_doubleloop!(rws, min_overlap = min_overlap) min_overlap -= 1 end ``` Start looking for long overlaps first, then allow shorter and shorter, maybe relative w.r.t `length(lhs₁) + length(lhs₂)`. - [ ] Add basic `Monoid` implementation based on normal forms & rewriting - [ ] Rewrite and simplify `IndexAutomaton` - [ ] `bfs` on the IndexAutomaton trie/PrefixAutomaton # Documentation missing - [ ] `Rule`s - [ ] `Automata` - [ ] Gap-docs examples - [ ] Benchmarking (mostly for myself :)
General Tasks:
Functional changes
isconfluent,isreducedin rewriting system for quick retrievalPrefixAutomatonrewritingreducealgorithm ?KBS3Algwith different strategy finding shortest rules first e.g.maybe relative w.r.t
length(lhs₁) + length(lhs₂).Monoidimplementation based on normal forms & rewritingIndexAutomatonbfson the IndexAutomaton trie/PrefixAutomatonDocumentation missing
RulesAutomata