Enumeration.hpp File Reference

Plans on enumerating groupoids. More...

Go to the source code of this file.

Detailed Description

Plans on enumerating groupoids.

Complete the implementation
  • Write simple tests. DONE
  • Move to dedicated module. DONE
  • Complete the implementation according to "XXX".
  • Write little helper functions for working with all_isotopismisomorphism_classes_actively_grd.
All isomorphism types of small groupoids
  • We need representatives: Perhaps best the lexicographically smallest elements (using row-wise order).
  • For the basic properties we need counts and representatives.
    • We consider all combinations of the following basic properties:
      1. commutativity
      2. having a unit
      3. being idempotent
      4. having a null
      5. having non-trivial automorphism group (this is not so common, but it can be read off trivially given a complete partitioning into isomorphism classes).
    • In module semigroups then these properties are explored for associative semigroups.
    • While in module Quasigroups these properties are explored for groupoids which are uniquely solvable (then having a null is being dropped).
    • And in module SemiLattices the basic condition is commutativity, idempotence and associativity together.
    • Isotopism is considered only for general groupoids and for general quasigroups (since from the above properties only unique solvability is an invariant under isotopism (but we should give examples for that)).
    • We need to study the literature, what is known about these numbers.
    • Currently we have hardcoded the four main properties and their combinations, since for them the total number of groupoids is easily computable.
    • For more properties we need a more general approach, perhaps using identifying strings for the properties, and a kind of database function.
  • We need also to build up catalogues.

Definition in file Enumeration.hpp.