Constructing isomorphisms/embeddings between semigroups given by generators. In other words, searching for an isomorphisms of Cayley-graphs. The elements of both semigroups are fully enumerated. The source semigroup is converted to generator table (partial multiplication table containing all the images of right multiplication by generators). The elements of target semigroups are classified by their index-periods in order to find possible targets for generators. Canonical notation for the data structure for Cayley-graph matching is M. It's a hasmap with keys :phi :Sgens :Smul :Tmul. Phi is the morphism (hash-map) that is induced by matching the (sub)semigroup generated by :Sgens.
Constructing isomorphisms/embeddings between semigroups given by generators. In other words, searching for an isomorphisms of Cayley-graphs. The elements of both semigroups are fully enumerated. The source semigroup is converted to generator table (partial multiplication table containing all the images of right multiplication by generators). The elements of target semigroups are classified by their index-periods in order to find possible targets for generators. Canonical notation for the data structure for Cayley-graph matching is M. It's a hasmap with keys :phi :Sgens :Smul :Tmul. Phi is the morphism (hash-map) that is induced by matching the (sub)semigroup generated by :Sgens.
(add-gen-and-close {phi :phi gens :Sgens :as M} g G)
Add a new generator and close the Cayley-graph.
Add a new generator and close the Cayley-graph.
(bijective? m)
Returns true if the given hash-map is bijective, i.e., the values are all distinct.
Returns true if the given hash-map is bijective, i.e., the values are all distinct.
(class-reps f coll)
Classifies the elements of coll by function f and keeps only a representative element from each class.
Classifies the elements of coll by function f and keeps only a representative element from each class.
(embedding-backtrack Sgens Smul tgs Tmul all?)
Finding an embedding of source semigroup into target induced by the possible
images of the generators by a backtrack algorithm.
If all?
is set, it returns the collection of solutions, otherwise just a
single solution found first.
Finding an embedding of source semigroup into target induced by the possible images of the generators by a backtrack algorithm. If `all?` is set, it returns the collection of solutions, otherwise just a single solution found first.
(embeddings Sgens Smul targets Tmul)
All embeddings of source semigroup into target induced by the possible images of the generators.
All embeddings of source semigroup into target induced by the possible images of the generators.
(embeddings-distinct Sgens Smul tgs Tmul conj-fn-bundle)
All morphisms from embedding seeds, but lossy ones filtered out.
All morphisms from embedding seeds, but lossy ones filtered out.
(gen-map {phi :phi gens :Sgens})
Extracts the mappings of the S generators to T generators from a Cayley graph morphic match.
Extracts the mappings of the S generators to T generators from a Cayley graph morphic match.
(index-period-matched Sgens Smul Tgens Tmul)
Returns for each generator in S, the elements of T with matching index-period values. WARNING: It fully enumerates T.
Returns for each generator in S, the elements of T with matching index-period values. WARNING: It fully enumerates T.
(morphisms-up-to-conjugation morphs setconjrep)
Returns the distinct morphs up to conjugation. First checking by the equality of the image set, then by its conjugacy class representative.
Returns the distinct morphs up to conjugation. First checking by the equality of the image set, then by its conjugacy class representative.
(morphisms-up-to-conjugation2 morphs setconjrep)
Returns the distinct morphs up to conjugation. First checking by the equality of the image set, then by its conjugacy class representative.
Returns the distinct morphs up to conjugation. First checking by the equality of the image set, then by its conjugacy class representative.
(new-generator-conjreps
phi
n
Sgens
tgs
{repconj :conjrep setconjrep :setconjrep conj-conj :conjconj})
Finds the possible target generators up to conjugation. For the very first generator it chooses conjugacy class representatives. Strategy: compute conjugacy class reps for sequences, but filter them with setwise conjugacy.
Finds the possible target generators up to conjugation. For the very first generator it chooses conjugacy class representatives. Strategy: compute conjugacy class reps for sequences, but filter them with setwise conjugacy.
(new-generator-conjreps2
phi
n
Sgens
tgs
{repconj :conjrep setconjrep :setconjrep conj-conj :conjconj})
Finds the possible target generators up to conjugation. For the very first generator it chooses conjugacy class representatives. Strategy: compute conjugacy class reps for sequences, but filter them with setwise conjugacy.
Finds the possible target generators up to conjugation. For the very first generator it chooses conjugacy class representatives. Strategy: compute conjugacy class reps for sequences, but filter them with setwise conjugacy.
(new-mapping mulS mulT phi [a g])
Attempt to extends the morphism phi
for the product of element a
by
generator g
(both known by phi). The product ag may be known or a new one.
If phi(ag) is already known and morphic, then an empty vector is returned.
If it is newly found, it gives a vector [ag phi(ag)], to conjoin to phi.
If it is not homomorphic, nil is returned.
In short, outputs can be nil, [], or [ag phi(ag)].
mulS
, mulT
- multiplication in source S and in target T
Attempt to extends the morphism `phi` for the product of element `a` by generator `g` (both known by phi). The product ag may be known or a new one. If phi(ag) is already known and morphic, then an empty vector is returned. If it is newly found, it gives a vector [ag phi(ag)], to conjoin to phi. If it is not homomorphic, nil is returned. In short, outputs can be nil, [], or [ag phi(ag)]. `mulS`, `mulT` - multiplication in source S and in target T
(sgp-embeddings-by-gens Sgens Smul Tgens Tmul)
(sgp-embeddings-by-gens Sgens Smul Tgens Tmul conj-fn-bundle)
Computes all embeddings from source semigroup to target semigroup. Semigroups are given by generators and their multiplication functions. Source semigroup is replaced by its generation table. It returns a list of maps containing the images of the source generators, or an empty list. Results are up to conjugation if conjugation action and symmetries are given.
Computes all embeddings from source semigroup to target semigroup. Semigroups are given by generators and their multiplication functions. Source semigroup is replaced by its generation table. It returns a list of maps containing the images of the source generators, or an empty list. Results are up to conjugation if conjugation action and symmetries are given.
cljdoc builds & hosts documentation for Clojure/Script libraries
Ctrl+k | Jump to recent docs |
← | Move to previous article |
→ | Move to next article |
Ctrl+/ | Jump to the search field |