16#include "flint/fmpz.h"
17#include "flint/fmpz_mat.h"
37bool solve_system_amt(fmpz_mat_t MAT,
int* target, uint nb_rows, uint nb_cols);
Implementation of Tarjan's algorithm.
parti * nfa_stal_fold(nfa *, parti *)
Computation of the partition obtained by the Stallings folding in SCCs.
Definition sep_group.c:914
nfa * nfa_proj_unary(nfa *)
Projection of a NFA over a one-letter alphabet.
Definition sep_group.c:1342
dfa * dfa_compute_folding(dfa *A, basis ba)
Definition sep_group.c:782
dgraph * dgraph_implement_fold(dgraph *g, parti *sccs, parti *fold)
Folds a single SCC of a dgraph according to a folding partition generated from MOD,...
Definition sep_group.c:758
bool decid_st_sep(nfa *, nfa *, FILE *)
ST-separation.
Definition sep_group.c:1484
dgraph * shrink_grp(dgraph *g, parti *fold, parti *sccs)
Computes the graph obtained by folding a right or left Cayley graph according to the Stalling partiti...
Definition sep_group.c:714
dgraph * shrink_mod_mirror(dgraph *g, parti *fold, parti *sccs)
Computes the graph obtained by folding a right or left Cayley graph according to the Stalling partiti...
Definition sep_group.c:694
void compute_amt_kernel_regular(morphism *, bool *, uint *)
Computes the regular elements of the AMT-kernel in a morphism (non-regular elements are ignored).
Definition sep_group.c:272
dgraph * shrink_mod(dgraph *g, parti *fold, parti *sccs)
Computes the graph obtained by folding a right or left Cayley graph according to the Stalling partiti...
Definition sep_group.c:674
num_span_forest * compute_span_forest(dgraph *G, parti *sccs, bool *allowed)
Computes a spanning forest from a dgraph.
Definition sep_group.c:94
parti * dgraph_amt_fold(dgraph *g, parti *sccs)
Computes the folding of a dgraph according to the AMT-separation.
Definition sep_group.c:196
void nfa_remove_inv(nfa *)
Remove all inverse transitions in an NFA.
Definition sep_group.c:901
bool decid_grp_sep(nfa *, nfa *, bool, FILE *)
GR-separation.
Definition sep_group.c:1252
dgraph * shrink_grp_mirror(dgraph *g, parti *fold, parti *sccs)
Computes the graph obtained by folding a right or left Cayley graph according to the Stalling partiti...
Definition sep_group.c:734
void delete_span_forest(num_span_forest *forest)
Deletes the structure used to store the spanning forest.
Definition sep_group.c:151
parti * dgraph_stal_fold(dgraph *G, parti *sccs, basis ba)
Computes the Stalling partition obtained from a dgraph.
Definition sep_group.c:477
parti * nfa_inv_ext(nfa *)
Computation of the inverse transitions inside the SCCs of an NFA.
Definition sep_group.c:867
void compute_amt_pairs_regular(morphism *M, num_span_forest *rspan, num_span_forest *lspan, uint e, uint f, dequeue *first, dequeue *second)
Computes the anti AMT-pairs (q,t) where q is in the R-class of e and t is in the L-class of f.
Definition sep_group.c:372
nfa * nfa_dyck_ext(nfa *, parti *)
Computation of the NFA used in the group separation algorithm by adding epsilon transitions between p...
Definition sep_group.c:1150
bool decid_mod_sep(nfa *, nfa *, bool, FILE *)
MOD-separation.
Definition sep_group.c:1377
Type used to represent a dequeue of unsigned integers.
Definition type_dequeue.h:26
Type used to represent a complete DFA.
Definition nfa.h:61
Type used to represent a complete deterministic directed labeled graph.
Definition graphs.h:73
The type used to represent a morphism into a finite monoid.
Definition monoid.h:91
Type used to represent a NFA.
Definition nfa.h:43
Type used to store the information needed to solve AMT-separation on the SCCs of a dgraph.
Definition sep_group.h:59
uint * root
Array index by the trees of the spanning forest. For each tree i, root[i] is the root of the tree.
Definition sep_group.h:66
dequeue ** dropped
Indexed by the trees of the spanning forest. For each tree i dropped[i] is the list of all edges with...
Definition sep_group.h:67
uint nb_trees
Maximal number of trees in the spanning forest (at most the number of SCCs in the dgraph).
Definition sep_group.h:62
uint * numtree
Array indexed by the states of the dgraph. For each state q, num_tree[q] is the index of the tree of ...
Definition sep_group.h:65
uint size_alpha
Number of labels in the dgraph.
Definition sep_group.h:61
uint size_graph
Number of vertices in the dgraph.
Definition sep_group.h:60
int ** span_forest
The spanning forest. For each state q and each letter a, span_forest[q][a] is the number of occurrenc...
Definition sep_group.h:63
First type used to represent a partition. This is not the one used by Union-Find.
Definition type_partitions.h:36
Implementation of doubly linked lists.
Types used to represent partitions. Includes the union-find algorithm.