Skip to content

Finding complete rewriting systems for 1-relation monoids

In Cirpons, Hivert, Mahboubi, Melquiond, Mitchell and Smith (2026), the authors present a toolbox for the Rocq proof assistant, that can be used to verify the decidability of the word problem for a given monoid and, in some cases, to produce the corresponding decision procedure. In particular, the techniques described in this paper were applied to a large number of 1-relation monoids to determine their decidability. Of these, 501 required a modified version of the Knuth-Bendix procedure along with the termination solver Matchbox to find a complete reqriting system, thus proving decidability.

On the following pages, you will find complete rewriting systems for 412 of those 501 presentations. The complete rewriting systems described here were found using the Knuth-Bendix procedure implemented in libsemigroups, using the morphocompletion technique as described in Pedersen (2005) and by Pestov in Slava's Monoid Zoo.

Hall of fame

The following information may be of particular interest.

The presentations whose complete rewriting systems contains the most rules (128)

The presentations whose complete rewriting systems contains the fewest rules

The most common rules

Across all of the complete rewriting systems, there are \(7,781\) rules in total, and \(6,572\) unique rules. There are \(6,148\) rules that appear exactly once. The following are the most common rules:

Rule Occurrences
\(ba \to c\) 131
\(c \to aa\) 55
\(c \to ba\) 29
\(bc \to cb\) 26
\(abb \to d\) 25
\(bb \to c\) 25

All presentations

000–049

#000 ababbaaaaa=baaaaaba #001 aabaababba=baaba #002 abbabbaaaa=babba
#003 babbabaaba=abba #004 baabbaaaba=aabba #005 baaaaabbba=aaaaa
#007 abaaabaaba=babaaa #008 aabaaaabba=baaabaa #010 baaaaabbba=abaa
#011 babaaababa=aabababa #012 bababbba=aba #013 ababaaabba=baaababa
#014 babbaababa=abba #015 baabaabbaa=abbaaba #016 baaaabbbaa=aaaa
#017 aababbabba=babaa #018 aaabaaabba=baaabaa #020 aaabaabbaa=baaaba
#021 aaaabaabba=baabaaa #023 baaabbbbba=aa #024 baaabaaaba=abbaa
#025 abbababaaa=baabba #026 baaabaabaa=ababa #028 aaabababba=babaaa
#029 abbabbaa=baba #030 baabbaabba=abababa #031 aaaabababa=babaa
#032 baaabababa=abbaa #034 baaaabbbaa=abaaa #036 aababbaaaa=baaaaaba
#037 baaaabbbaa=aba #038 babaabbbba=abbbbaba #040 baabbaabba=aa
#042 baabababba=a #043 baaabbabba=aa #045 baabbaabaa=aabbaa
#047 ababbababa=babababa #048 abbababbba=baba #049 baabaabba=a

050–099

#050 babaabaaba=aabbabaa #051 baaaaaabba=aaaaa #052 abaabbabba=babbaaba
#053 baaababbaa=abababa #054 bbaaabbaaa=abbaa #055 baabaabbba=aa
#056 abbabbabaa=baba #057 abaabbbaba=babaa #058 baabbaaaba=abbaa
#059 abbabbbaba=babba #060 baabbbabba=a #061 baaababbba=abaa
#062 baabbbbba=aa #064 aaaabababa=babaaaaa #066 abababbba=baba
#067 baaaaabba=aabaa #068 baaaabbba=aa #069 abaabaabba=babaa
#070 abababbaaa=baababa #071 baababbba=aba #072 baaaaabbba=aaa
#074 abaababaa=baaba #075 baaababba=aba #076 baaaabbbba=aa
#077 aabbabbaba=babaa #078 baaaabbbba=aaa #080 aaaababbaa=babaaa
#081 aabaababba=baabaa #082 abbaaabbaa=babba #083 baabaabbaa=aabbaaba
#086 aaabbbaaba=baabbaa #088 bbaaabbbba=abbaa #089 baabbaabba=aba
#091 abaaabbaba=babaa #092 abbaababba=bababbaa #093 aabaaaabba=babaa
#094 baaaabba=aa #095 babbabbbba=abba #096 baabaabbaa=abababa
#097 baababbbaa=aaba #098 baaaabba=aaa

100–149

#100 aaabababaa=baaaaba #101 baaaaabbba=aaaa #102 baaabbaba=aa
#103 abbabbaa=babba #104 babaaabbba=aba #107 baaaabbbba=aaaa
#108 baabbabba=a #110 abbaababa=baabbaa #111 baabbabaa=aabba
#112 baababba=aba #113 abbababbaa=babba #114 aababbabaa=babaaba
#115 bbaabbbbaa=aabba #116 abababaaba=bababaa #117 baaaaabbba=abaaa
#118 ababaaaaba=baba #119 bbaabbaa=abba #121 baaaaaabba=aa
#122 babaababaa=abaabba #123 baabbaaba=abbaa #124 bbaabbbbaa=aabbbba
#126 baaaababba=aaa #127 baaabbabaa=abaaabba #128 aaaabbabba=babaa
#129 baaaaabba=abaaaa #130 baaaaabbaa=aaa #131 babbaaabba=abbaa
#132 baabaababa=abaabbaa #133 bbbaabbbaa=abbba #134 baabbbba=aa
#135 baabbba=aa #136 abaaababa=baaaba #137 abaabbbbba=babaa
#138 aababbbaa=baaba #139 abababbaaa=baaba #140 abaaabaaba=baaaba
#141 ababaaabba=baba #142 baabaaaaba=aabaaba #143 baaaabbbba=abaa
#144 baaaaababa=abaaa #145 baababaaba=a #147 baaaaabbaa=aaaa
#148 ababaabbba=baba #149 abaababaa=baabaa

150–199

#151 ababaababa=bababaa #152 babaaaabba=aaabbaba #153 baaaababaa=abaaba
#154 aababaabba=babaa #156 ababaabaaa=baba #157 bababaabba=ababa
#160 baaabbabba=abbbaa #161 baaaababba=abaaa #163 aabbaababa=baaabbaa
#166 abbabaaaba=baba #168 baaabbbba=aa #169 abbaababaa=baaba
#170 baaabbbaa=aaa #171 baaabbabaa=aaabba #172 baaabbbba=aaa
#173 baabbabbba=a #174 ababaaaba=baba #175 baaabaabaa=aabba
#176 bababbbba=aba #177 abbababbaa=bababa #179 babababbba=abbaba
#180 babababbba=ababa #181 aabbaabaa=baaba #182 baaabbba=aa
#183 abbabbabba=bbabbaa #184 abababbaba=bababa #185 baaabbba=aaa
#186 baabaaaba=abaa #187 babbababa=abba #188 abbaaababa=baabbaa
#189 ababaabbaa=baabaaba #190 abaaabbaba=babaaa #191 baaaaaabba=aaaaaa
#192 baaabbbbaa=aaa #194 baaabbaaba=aabbbaa #195 baabbababa=abbaba
#196 babbababba=abbabba #198 baaaaabbaa=abaaaa #199 ababbababa=baaba

200–249

#200 ababaaabaa=baba #203 baabbabbaa=aba #204 aabaaababa=baabaa
#205 baababbaa=aaba #206 abababbaa=baba #207 aababbaaaa=baaaaba
#208 abbbabbbaa=babbba #209 abbaabbbaa=baabba #210 baaabbaaba=abbabaa
#211 baaaabbba=aaa #213 abbaabbbba=babbaa #214 ababbaaaba=baaababa
#215 bababababa=ababbaba #216 abbababbaa=bababba #217 babaaabba=ababa
#218 abaababba=babaa #219 bababaaaba=aababa #220 baaabbaaba=abaa
#221 aaababbaba=babaa #222 aabaaababa=babaaa #224 babababbba=aba
#225 abbaabbaa=baba #226 aabaabbaaa=baaaba #227 baaaabbba=aaaa
#229 abbabbabaa=bababba #231 abbaababba=babbaa #232 baaabbbbaa=aba
#233 abaababaaa=baaabaa #234 baaababbaa=abbaaaba #235 abaabababa=baaba
#236 babaaaaaba=ababaa #237 ababbaba=bababa #238 baabaabaa=aabbaa
#239 abaabaabba=baababaa #242 abbabbbaaa=bababba #243 baaaabbbaa=a
#244 baaaabba=aaaa #245 abaabaaba=babaa #247 abaaabbaaa=baaaaba
#248 baaaaabbaa=a #249 baaaabaaaa=aaaaaba

250–299

#250 ababbbbaaa=baba #251 baabaabaa=ababa #252 baaaaaabba=aaa
#255 baabababaa=abbaaba #256 ababbaabaa=baabaaba #257 baaabbbaba=aa
#258 aabbaabbaa=baabba #259 bababbbaba=ababbba #260 baaabbaa=abaaa
#262 baabaaabba=aabaa #263 aabaabaaba=baabaa #264 abaabbaaba=baaba
#265 baaaabbaba=aa #266 ababbabbaa=baba #267 ababbabbba=babbbaba
#268 aababaabaa=baaba #269 baaaaaabba=aaaa #270 baaaabbaba=aaa
#271 baaaaabbba=abbaa #272 ababababa=babaaba #273 aaabababa=babaaaa
#275 baaabba=aa #276 aabaababaa=baaba #277 baaaababaa=aaaba
#278 baababbba=a #279 abbabaa=baba #280 abaabbabaa=babaaaba
#282 abababaaba=babaa #283 baabbbaaba=aabbbaa #285 baaabaaaba=aaabba
#286 bababaaaba=aabababa #288 abbaabbaa=babba #289 abbabbbaba=bababba
#290 abaabbaa=baaba #291 baabbabbaa=aabba #292 baaaaabba=aa
#293 babaaaabba=ababa #294 babbaaba=abba #296 ababbbabba=babbaba
#297 baabaabba=aa #299 babaababba=ababbaba

300–349

#300 aabbaabbba=baabba #301 abaabababa=babaaba #302 babaabbbba=aba
#303 abbababaa=baabba #305 baaaabbaa=abaaa #306 aabababbaa=baaba
#307 baabbbbbba=aa #308 baabbaa=aabba #309 baaaaababa=abbaa
#310 babaababa=abababa #312 baaaabbaba=abaaa #313 abaabbaaaa=baaaba
#315 aaaabbaaba=baabaaa #317 bababbaaba=ababba #318 baababba=a
#321 baabbaabaa=abaabbaa #322 abaabaaba=baabaa #323 aaaaababba=babaaaa
#324 baabaaba=aabba #325 abaaaababa=baaabaa #326 baaaabbaaa=aaaabbaa
#327 abaabbaba=babaa #328 abbabbbba=babba #329 babaaabbba=aabbbaba
#330 abaaababba=babaa #331 abaabaaaba=baaba #332 abababaaaa=baaba
#333 aababababa=babaa #334 abbabbbaaa=baaabba #335 baaabbbaba=abaa
#336 baababbbaa=abba #337 baaaabbaa=abaaaa #338 abaabaaaba=babaa
#339 aaabaaabba=baaaba #340 baabababaa=aaaba #342 babaababba=ababa
#344 babbbabba=abbba #346 baababbaa=abaaba #347 ababbbabba=baba
#348 baaaabbaba=abaa

350–399

#350 aaaabaabba=babaa #352 baabaaaba=abaaba #353 abaabbabaa=baaba
#354 baabbaaaba=aabbaa #355 baaabbaba=a #356 baabaabaa=ababaa
#357 abbabbaaa=babba #358 baaabbabaa=aabba #359 ababaaabaa=baaba
#360 baabaabaa=abaaba #361 baaaabaaba=a #362 abbaabbaba=bababbaa
#363 aabaabbaba=babaaba #364 aabaababaa=baabaa #365 abaababbaa=baaba
#366 aaababaaba=babaa #367 baaababaaa=abaaaba #368 aababbbaba=babbaa
#369 ababbabbaa=babbaaba #370 baaababaaa=aababaa #372 abbabbaaba=babba
#374 abaabababa=babaabaa #375 baabaabba=abaa #376 abaabababa=babaa
#377 babaababaa=ababa #378 baabaaaba=aaabbaa #379 baaaabaaba=aabaa
#381 babbaaaba=ababba #382 aaabbababa=babaaa #383 bababbbbba=aba
#384 abaabaaaba=baabaaa #385 bbaaabbbba=aa #386 baabaaabaa=aba
#388 babaabaaba=aabbaba #389 baaababaa=aababa #390 abaaabbaba=babaaaba
#391 bababaaba=ababa #392 baababbaba=a #393 babaaaabba=ababaa
#394 baaaababa=abbaa #395 baaababba=aa #396 abaaaababa=babaa
#397 abbabbbbaa=bbaabba #399 ababaaabba=babaaa

400–449

#400 baaaabbaaa=a #403 babaaaaaba=aaaababa #404 abaaabaaba=babaa
#405 aabaabbaaa=baaabaa #407 abbabbabaa=baabba #408 babaababaa=aba
#409 aaababbaaa=baaaba #410 baaaaaabba=abaaaaa #411 aabaabbaba=babaabaa
#412 abaababbaa=baabaaba #413 ababaabbaa=baababa #415 bbabaaabba=abbabaa
#416 baaaababaa=aa #417 baaababbaa=aaaba #418 abaababbaa=babaaba
#419 aababababa=babaaa #421 abaababa=baaba #422 aabbbaaba=baabbaa
#423 baaaaabbaa=abaaaaa #424 aababababa=bababaaa #426 bababaaaba=ababa
#427 aaabababba=babaa #428 aabbaabbaa=baaba #429 baaaaabba=aaa
#430 baabaabba=ababa #431 abababbaba=babababa #432 baaabbbaaa=aba
#433 baaaabaaba=abbaa #434 ababaaaba=babaaa #436 baabaaaaba=abaa
#437 baaaaabbba=aa #438 baabbababa=abbaabba #439 baaaabbaaa=aaaabba
#440 ababbabba=baba #441 abaabbaaaa=baaba #444 abbababaa=bababa
#445 abaaaababa=baabaaa #446 baaaaabba=aaaa #447 baaababa=a
#448 baabaaabba=abaabaa

450–501

#450 baabababaa=aabbaaba #451 baaabaaba=a #452 baabaabbaa=aaaba
#453 aabbababaa=baaabba #454 ababababaa=babaa #457 ababaabbaa=baaababa
#458 baaabbbaa=aaabbba #459 baaabaaaba=aabaa #460 aabbaaabba=baabbaa
#461 baaaababaa=abaaa #462 abbaaababa=baabbaaa #463 baabababba=aba
#465 abbaababaa=baababa #468 baabbbbbaa=aba #470 ababbabaa=baba
#471 abaaababa=baabaa #472 baababbbaa=abbabba #473 abaabaaba=baaaba
#474 bbaaabbaa=abba #475 baaabbaaba=abbaa #476 abababbaaa=baaababa
#477 abbabbbaba=baabba #478 babbabbaba=abbabba #479 bbaabbabba=a
#481 babbabbbba=abbba #482 aabaaabbaa=baaaba #483 aabaabbaaa=baaba
#484 ababbabaaa=baaba #485 baaaababba=aa #487 abbaabbaba=babbaa
#488 baababaaba=aababbaa #490 babaabaaba=ababa #491 baabaabbba=abaa
#493 ababbbabba=bbabbaba #494 baaaabbbaa=aaa #495 aababbaba=babaa
#496 abaaaababa=babaaa #497 aabaabbaaa=baaaaba #498 bbaaabbaaa=aabba
#499 baaaaaabba=aaabaa #500 abbbababaa=baabbba #501 baaaabbbaa=aaaabbba