Add cosimulation and iterated_simulations to the web interface.

* wrap/python/spot.i (cosimulation, iterated_simulations): Declare.
* wrap/python/ajax/spot.in, wrap/python/ajax/protocol.txt,
wrap/python/ajax/ltl2tgba.html: Add options to trigger these two
optimizations.
This commit is contained in:
Alexandre Duret-Lutz 2012-08-21 16:26:28 +02:00
parent 84b6240aa9
commit 74bd671350
4 changed files with 42 additions and 4 deletions

View file

@ -579,6 +579,8 @@ if output_type == 'm':
prune_scc = False
wdba_minimize = False
direct_simul = False
reverse_simul = False
iterated_simul = False
for s in form.getlist('as'):
if s == 'ps':
prune_scc = True
@ -586,6 +588,10 @@ for s in form.getlist('as'):
wdba_minimize = True
elif s == 'ds':
direct_simul = True
elif s == 'rs':
reverse_simul = True
elif s == 'is':
iterated_simul = True
ta_type = None
buchi_type = None
@ -631,9 +637,20 @@ if wdba_minimize:
issba = True
direct_simul = False # No need to simulate anymore
if direct_simul:
if direct_simul and not iterated_simul:
automaton = spot.simulation(automaton)
issba = False
if reverse_simul and not iterated_simul:
automaton = spot.cosimulation(automaton)
issba = False
if iterated_simul:
automaton = spot.iterated_simulations(automaton)
issba = False
if prune_scc and (direct_simul or reverse_simul):
# Make a second pass after the simulation, since these might leave
# extra acceptance conditions.
automaton = spot.scc_filter(automaton, not degen)
if degen or neverclaim:
degen = spot.degeneralize(automaton)