Introduce mealy_prod

Product between mealy machines
with propagation of synthesis outputs
and additional assertions.
Currently it only supports input complete machines

* spot/twaalgos/mealy_machine.cc,
  spot/twaalgos/mealy_machine.hh: Here
* bin/ltlsynt.cc: Use
* tests/python/except.py,
  tests/python/synthesis.ipynb: Test
This commit is contained in:
Philipp Schlehuber-Caissier 2022-03-18 01:02:45 +01:00
parent 5cd0ce14b0
commit 86de4d4052
5 changed files with 288 additions and 16 deletions

View file

@ -331,3 +331,20 @@ except RuntimeError as e:
tc.assertIn("already registered", se)
else:
report_missing_exception()
si = spot.synthesis_info()
si.s = spot.synthesis_info.algo_LAR
g1 = spot.ltl_to_game("G((i0 xor i1) <-> o0)", ["o0"], si)
g2 = spot.ltl_to_game("G((i0 xor i1) <-> (!o0 & !o1))", ["o0", "o1"], si)
spot.solve_game(g1)
spot.solve_game(g2)
strat1 = spot.solved_game_to_separated_mealy(g1)
strat2 = spot.solved_game_to_separated_mealy(g2)
try:
stratcomp = spot.mealy_product(strat1, strat2)
except RuntimeError as e:
se = str(e)
tc.assertIn("Incompatible", se)
else:
report_missing_exception()