Liking cljdoc? Tell your friends :D

kigen.semigroup.genmorph

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.
raw docstring

add-gen-and-closeclj

(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.
sourceraw docstring

bijective?clj

(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.
sourceraw docstring

call-embeddingclj

(call-embedding Sgens Smul Tgens Tmul)
source

class-repsclj

(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.
sourceraw docstring

embedding-backtrackclj

(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.
sourceraw docstring

embeddingsclj

(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.
sourceraw docstring

embeddings-distinctclj

(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.
sourceraw docstring

gen-mapclj

(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.
sourceraw docstring

index-period-matchedclj

(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.
sourceraw docstring

morphisms-up-to-conjugationclj

(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.
sourceraw docstring

morphisms-up-to-conjugation2clj

(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.
sourceraw docstring

new-generator-conjrepsclj

(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.
sourceraw docstring

new-generator-conjreps2clj

(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.
sourceraw docstring

new-mappingclj

(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
sourceraw docstring

sgp-embeddings-by-gensclj

(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.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close