Mescal
Loading...
Searching...
No Matches
shell_morprops.h File Reference

Shell functions testing properties of automata. More...

#include "alloc.h"
#include "shell_languages.h"
#include "monoid_props.h"

Go to the source code of this file.

Functions

bool shell_morprop_htgentriv (int, char *, FILE *)
 Checks if the H-classes of 1 and all generators are trivial.
 
bool shell_morprop_monotriv (int, char *, FILE *)
 Checks if a monoid is trivial.
 
bool shell_morprop_semitriv (int, char *, FILE *)
 Checks if a semigroup is trivial.
 
bool shell_morprop_orbtriv (int, orbits_type, char *, char *, FILE *)
 Checks if a set of orbits is trivial.
 
bool shell_morprop_letterind (int, char *, FILE *)
 Checks if a morphism maps all letters to the same element.
 
bool shell_morprop_monogroup (int, char *, FILE *)
 Checks if a monoid is a group.
 
bool shell_morprop_semigroup (int, char *, FILE *)
 Checks if a semigroup is a group.
 
bool shell_morprop_monocom (int j, char *name, FILE *out)
 Checks if a monoid is a group.
 
bool shell_morprop_kercom (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a kernel is commutative.
 
bool shell_morprop_orbcom (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if orbits are commutative.
 
bool shell_morprop_semigencom (int j, char *name, FILE *out)
 Checks if a semigroup is commutative.
 
bool shell_morprop_monoidem (int j, char *name, FILE *out)
 Checks if a monoid is idempotent.
 
bool shell_morprop_keridem (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a kernel is idempotent.
 
bool shell_morprop_orbidem (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if orbits are idempotent.
 
bool shell_morprop_monogreen (int j, green_relation R, char *name, FILE *out)
 Checks if a Green relation is trivial in a monoid.
 
bool shell_morprop_kergreen (int j, green_relation R, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a Green relation is trivial in a kernel.
 
bool shell_morprop_orbgreen (int j, green_relation R, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if a Green relation is trivial in a set of orbits.
 
bool shell_morprop_monoda (int j, char *name, FILE *out)
 Checks if a monoid is in DA.
 
bool shell_morprop_kerda (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a kernel is in DA.
 
bool shell_morprop_orbda (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if orbits are in DA.
 
bool shell_morprop_monojsat (int j, char *name, FILE *out)
 Checks if a monoid satisfies the J-saturation property.
 
bool shell_morprop_monoejsat (int j, char *name, FILE *out)
 Checks if a monoid satisfies J-saturation property restricted to idempotents.
 
bool shell_morprop_kerjsat (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a kernel satisfies the J-saturation property.
 
bool shell_morprop_orbjsat (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if orbits satisfy the J-saturation property.
 
bool shell_morprop_bpgroupeq (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a morphism satisfies the BPol(G)-equation.
 
bool shell_morprop_blockg (int j, char *name, FILE *out)
 Checks if a monoid satisfies the block-group property.
 
bool shell_mprop_semiknast (int j, char *name, FILE *out)
 Checks if a semigroup satisfies Knast's equation.
 
bool shell_morprop_kerknast (int j, kernel_type type, char *ker, char *name, FILE *out)
 Checks if a strict kernel satisfies Knast's equation.
 
bool shell_morprop_knastat (int j, char *name, FILE *out)
 Checks if a monoid satisfies Knast's equation for AT sets.
 
bool shell_morprop_bpgroupeqplus (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if a kernel satisfies the BPol(G⁺)-equation.
 
bool shell_morprop_ubp2eq (int j, orbits_type type, char *orbs, char *name, FILE *out)
 Checks if orbits satisfy the UBP2 equality property.
 

Detailed Description

Shell functions testing properties of automata.

Shell functions testing properties of morphisms.

Attention
All functions must be called on indices of the objects array that refer to automata.ACCESSX_MAX_TABLESIZE This is not checked in the functions.
All functions must be called on indices of the objects array that refer to morphisms. This is not checked in the functions.

Function Documentation

◆ shell_morprop_blockg()

bool shell_morprop_blockg ( int j,
char * name,
FILE * out )

Checks if a monoid satisfies the block-group property.

Returns
True if the monoid satisfies the block-group property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_bpgroupeq()

bool shell_morprop_bpgroupeq ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a morphism satisfies the BPol(G)-equation.

Returns
True if the morphism satisfies the BPol(G)-equation, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_bpgroupeqplus()

bool shell_morprop_bpgroupeqplus ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if a kernel satisfies the BPol(G⁺)-equation.

Returns
True if the kernel satisfies the BPol(G⁺)-equation, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_htgentriv()

bool shell_morprop_htgentriv ( int j,
char * name,
FILE * out )

Checks if the H-classes of 1 and all generators are trivial.

Returns
True if the H-classes of 1 and all generators are trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_kercom()

bool shell_morprop_kercom ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a kernel is commutative.

Returns
True if the kernel is commutative, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_kerda()

bool shell_morprop_kerda ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a kernel is in DA.

Returns
True if the kernelis in DA, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_kergreen()

bool shell_morprop_kergreen ( int j,
green_relation R,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a Green relation is trivial in a kernel.

Returns
True if the relation is trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
RThe relation that needs to be checked.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_keridem()

bool shell_morprop_keridem ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a kernel is idempotent.

Returns
True if the kernel is idempotent, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_kerjsat()

bool shell_morprop_kerjsat ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a kernel satisfies the J-saturation property.

Returns
True if the kernel satisfies the J-saturation property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_kerknast()

bool shell_morprop_kerknast ( int j,
kernel_type type,
char * ker,
char * name,
FILE * out )

Checks if a strict kernel satisfies Knast's equation.

Returns
True if the strict kernel satisfies Knast's equation, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of kernel to check.
kerThe name of the kernel (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_knastat()

bool shell_morprop_knastat ( int j,
char * name,
FILE * out )

Checks if a monoid satisfies Knast's equation for AT sets.

Returns
True if the monoid satisfies Knast's equation for AT-sets, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_letterind()

bool shell_morprop_letterind ( int j,
char * name,
FILE * out )

Checks if a morphism maps all letters to the same element.

Returns
True if the morphism maps all letters to the same element, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monocom()

bool shell_morprop_monocom ( int j,
char * name,
FILE * out )

Checks if a monoid is a group.

Returns
True if the monoid is a group, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monoda()

bool shell_morprop_monoda ( int j,
char * name,
FILE * out )

Checks if a monoid is in DA.

Returns
True if the monoid is in DA, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monoejsat()

bool shell_morprop_monoejsat ( int j,
char * name,
FILE * out )

Checks if a monoid satisfies J-saturation property restricted to idempotents.

Returns
True if the monoid satisfies the property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monogreen()

bool shell_morprop_monogreen ( int j,
green_relation R,
char * name,
FILE * out )

Checks if a Green relation is trivial in a monoid.

Returns
True if the relation is trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
RThe relation that needs to be checked.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monogroup()

bool shell_morprop_monogroup ( int j,
char * name,
FILE * out )

Checks if a monoid is a group.

Returns
True if the monoid is a group, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monoidem()

bool shell_morprop_monoidem ( int j,
char * name,
FILE * out )

Checks if a monoid is idempotent.

Returns
True if the monoid is idempotent, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monojsat()

bool shell_morprop_monojsat ( int j,
char * name,
FILE * out )

Checks if a monoid satisfies the J-saturation property.

Returns
True if the monoid satisfies the J-saturation property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_monotriv()

bool shell_morprop_monotriv ( int j,
char * name,
FILE * out )

Checks if a monoid is trivial.

Returns
True if the monoid is trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbcom()

bool shell_morprop_orbcom ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if orbits are commutative.

Returns
True if the orbits are commutative, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbda()

bool shell_morprop_orbda ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if orbits are in DA.

Returns
True if the orbits are all in DA, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbgreen()

bool shell_morprop_orbgreen ( int j,
green_relation R,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if a Green relation is trivial in a set of orbits.

Returns
True if the relation is trivial for all orbits, false otherwise.
Parameters
jIndex of the morphism in the objects array.
RThe relation that needs to be checked.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbidem()

bool shell_morprop_orbidem ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if orbits are idempotent.

Returns
True if the orbits are idempotent, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbjsat()

bool shell_morprop_orbjsat ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if orbits satisfy the J-saturation property.

Returns
True if the orbits satisfy the J-saturation property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_orbtriv()

bool shell_morprop_orbtriv ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if a set of orbits is trivial.

Returns
True if the orbits are trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe orbits that need to be checked.
orbsName of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_semigencom()

bool shell_morprop_semigencom ( int j,
char * name,
FILE * out )

Checks if a semigroup is commutative.

Returns
True if the semigroup is commutative, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_semigroup()

bool shell_morprop_semigroup ( int j,
char * name,
FILE * out )

Checks if a semigroup is a group.

Returns
True if the msemigroup is a group, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_semitriv()

bool shell_morprop_semitriv ( int j,
char * name,
FILE * out )

Checks if a semigroup is trivial.

Returns
True if the semigroup is trivial, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_morprop_ubp2eq()

bool shell_morprop_ubp2eq ( int j,
orbits_type type,
char * orbs,
char * name,
FILE * out )

Checks if orbits satisfy the UBP2 equality property.

Returns
True if the orbits satisfy the UBP2 equality property, false otherwise.
Parameters
jIndex of the morphism in the objects array.
typeThe type of orbits to check.
orbsThe name of the orbits (for the display).
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).

◆ shell_mprop_semiknast()

bool shell_mprop_semiknast ( int j,
char * name,
FILE * out )

Checks if a semigroup satisfies Knast's equation.

Returns
True if the semigroup satisfies Knast's equation, false otherwise.
Parameters
jIndex of the morphism in the objects array.
nameName of the object (for the display)
outOutput stream (NULL is no output is desired).