ldiv: errors
If you take the ad/inductive
branch and try this expression
e = vcsn.context('lan, b').expression('((b*&b){\}(b*+(a*&:(c*&c*))**)***)*(b*{\}b)')
then e.automaton()
and e.inductive
are not equivalent.
I'm confident it should be possible to reduce this expression and still get something wrong, but maybe you want to work on an algorithm that would try to simplify this expression while keeping the bug? This is a nice feature that exists in Spot and not in Vcsn.
Alternatively, you may want to try to generate smaller incorrect formulas.
import vcsn
for _ in range(100):
e = vcsn.context('lan(abc), b').random_expression('+=1,*=1,.=1,&=1,:=1,&:=1,{\}=1,length=20')
s1 = e.inductive()
s2 = e.automaton()
iso = s1.accessible().is_isomorphic(s2)
equ = s1.is_equivalent(s2)
print(e, equ, iso)
if not equ:
print(s1, s2)
Also, if you have interest in completing automatonset
and inductive
, please tell me.