general.hpp File Reference

Plans in general regarding groupoids. More...

Go to the source code of this file.

Detailed Description

Plans in general regarding groupoids.

Write tests
Naming conventions
Forms of "constructive" groupoids
  • For implicit representations (see "Abstract representation of structures") we (still) assume
    1. that representations of groupoid elements are given by terms (though there may be many terms),
    2. that we can decide equality,
    3. and that we can decide membership.
  • One can drop both (decidability) conditions, turning the groupoid operations into "promise functions" which only yield defined results if the inputs are actually groupoid elements.
  • Independently we can consider that we have given a function f() which returns a "random element" of the finite groupoid:
    1. The returned valued must be guaranteed to be an element.
    2. Strongest is guaranteed uniform distribution.
    3. In the extreme other case we don't have any guarantee.
  • Strengthenings of implicit representations:
    1. A generating set is often at hand.
    2. Additionally a "rewrite algorithm" might be given, computing for each representation of a groupoid element a word in the generators representing that element.
    3. For such a rewrite algorithm one can require "canonicity", that is, for inputs representing the same element we obtain the same word (thus the rewrite algorithm also solves equality decision).
Straight-line programs
  • The most general form of a "straight-line program" to represent an element of a groupoid is just a Maxima term.
  • Much more special, it is just a sequence of words, the first only in the given generators, and all further words are allowed to use all previous words, while the final word represents the element.
Congruence relations
  • A new submodule "Quotients.mac" is needed for the handling of congruence relations in groupoids.
  • See also "Induced congruence relation" in ComputerAlgebra/Algebra/Lisp/Groupoids/plans/Homomorphisms.hpp.
  • Providing congruence_grd_p, and for a given congruence relation, the quotient groupoid.
  • Likely we should provide two representations of the quotient groupoid:
    1. The direct one, with equivalence classes as elements.
    2. Since Maxima-sets have an underlying order, it seems sensible to use the first element of an equivalence class as a representative.

Definition in file general.hpp.