Hi Alexandre,
Thank you very much for the detailed response!
Python subprocess seems to work well for giving a timeout externally.
For the other issue, I modified the next tool in my toolchain to work correctly when receiving as input automata where the initial state is not numbered 0.
I'll be happy if you can give me some further advice on my use of SPOT:
My goal is to take TLSF specifications from
syntcomp and check realizability using the tool
Spectra. Since this tool is made for the GR(1) fragment, I attempt to translate individual LTL formulas from the TLSF spec into this fragment. In particular, for some of the formulas I use SPOT to translate them into a deterministic Buchi automata in HOA format, which is then given as input to a tool called
DBW2GR1 (a part of Spectra) generating a GR(1) equivalent formula if such exists.
I use the following command (LTL_FORMULA here is already translated via
syfco to the required syntax):
ltl2tgba -D -B -H -x sat-minimize -f LTL_FORMULA | autfilt --is-deterministic
My aim is to fail if the result is not deterministic, since a minimal DBA is a requirement for the correctness of DBW2GR1.
I'll be happy if you have any advice, especially on the use of sat-minimize: are there any parameters I should alter to get the best possible results from the sat solver? (I am aware that inherently some inputs will be difficult.)
Is there any quicker way to tell if a translation to DBA is possible, perhaps separately from the minimization procedure?
As a side note, I also use SPOT's ltlsynt to compare with my results. For this I use:
ltlsynt --realizability --tlsf FILE
Thank you,
Yoav