2
* \brief contains unary tests
3
* Copyright (c) ? - 2000 Lehrstuhl fuer Informatik VII, RWTH Aachen
4
* Copyright (c) 2000 - 2002 Burak Emir
5
* This file is part of the libAMoRE library.
7
* libAMoRE is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
* You should have received a copy of the GNU Lesser General Public
12
* License along with the GNU C Library; if not, write to the Free
13
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
24
/** test whether indfa has dead states
27
void deadsearch(dfa indfa,posint *deadpos, posint *deadneg,
28
boole *pos, boole *neg) ;
30
/** test whether language is in FOLU
33
boole folutest(dfa indfa) ;
36
/** test whether lan is starfree.
38
* a monoid M is aperiodic
40
* <=> M is groupfree (contains only trivial groups)
43
* <=> the syntactical monoid of L is aperiodic
45
boole sftest(monoid mon) ;
47
/** test membership of the syntactic semigroup in several +-Varieties
50
* L(S) is finite or cofinite <=> eS=Se=e for all idempotent e
51
* definite <=> Se = e for all idempotent e
52
* reverse definite <=> eS = e for all idempotent e
53
* generalized definite <=> eSe = e for all idempotent e
54
* local testable <=> eSe is idempotent and commutative
55
* for all idempotent e
57
* nilpotent => definite,revdefinite,gendefinite,localtest
58
* definite or revdefinite => gendefinite => localtest
60
* if mon->mequals and mon->starfree then
61
* there is a letter whose transformation is the identity
62
* in this case L can`t be nilpotent,definite,revdefinite,gendefinite
64
* if stamon->mno==1 then L = A* or L = 0
66
void proptest(language lan,monoid mon) ;
68
/** test whether monoid is piecewise testable
73
* L is piecewiese testable
74
* <=>M(L) is D trivial (size of each dclass is 1)
76
boole testpwt(monoid mon) ;
78
/** test whether monoid has dot depth <= 1
84
* for all idempotent elements e and id2
85
* and all elements i,j,k,l in S=S(L)
86
* (e*i*f*j)^g * e*i*f*l*e * (k*f*l*e)^g
88
* (e*i*f*j)^g * e * (k*f*l*e)^g
90
boole testdd1(monoid mon) ;