Dear Madam, dear Sir,
I am just starting using spot (with python) for a university project
(ULB, Brussels) and my team mates and I have spent quite some time just
figuring out how to use accepting states in a Buchi automaton.
We found it inconvenient and more importantly very difficult to find in
the documentation (it was located in the far end of the doc...) to use
`automaton.prop_state_acc(True)` in order to set states accepting
instead of edges.
It could be interesting to specify how to do this in a clear way, why
not in the code examples? A good place for this would be this page
<https://spot.lrde.epita.fr/tut22.html> for instance.
Yours sincerely,
Yannick Molinghen
Hi,
How can I use Exclusive-AP and merge transitions in python to reduce my automaton and the number of transitions? An example would suffice.
Thanks and Regards,
Hashim Ali
Research Assistant
Laboratory for Cyber-Physical Networks and Systems (Cyphynets)
Lahore University of Management Sciences (LUMS)
Hi,
Similar to highlighting runs on the automaton, is it possible that I can convert a word to a corresponding run and then I can highlight it on the automaton?
Thanks and Regards,
Hashim Ali
Research Assistant
Laboratory for Cyber-Physical Networks and Systems (Cyphynets)
Lahore University of Management Sciences (LUMS)
Hi,
I am using
spot.from_ltlf().translate()
to translate LTL rules into a finite automata (with alive property). Now I want to verify certain words that whether they are accepted by the automata or not. These words will be generated from a powerset of the set of atomic propositions. Lets suppose I have AP = {a,b,c,d}. How do I generate words from the powerset of AP and verify it on the automata. Should the word always contain a cycle and a prefix part. If yes, what should be the cycle part and what should be the prefix part.
I will be waiting for your response.
Thanks and Regards,
Hashim Ali
Research Assistant
Laboratory for Cyber-Physical Networks and Systems (Cyphynets)
Lahore University of Management Sciences (LUMS)
Hi,
Is there any support for weighted Automata in spot. Here is a thing I want to implement. I want to test certain words on a certain automata, if a word is rejected by the automata I want to add a new transition (weighted transition) to this automata and later on if that same word comes for verification, I want this automata to return this weight corresponding to this transition.
Thanks and Regards,
Hashim Ali
Research Assistant
Laboratory for Cyber-Physical Networks and Systems (Cyphynets)
Lahore University of Management Sciences (LUMS)
Dear Patrick,
(Please keep the mailing list in copy so that these explanations get
archived and then indexed by search engines.)
On Tue, Mar 5, 2019 at 8:58 AM Halder, Patrick <patrick.halder(a)tum.de> wrote:
> When I have the twa_product automaton with its respective acceptance states,
> how can I find out, to which states of my original Kripke structure they correspond to.
> I read somewhere in the spot examples that the labeling of the twa_product states
> (of the form <*,*>) has just cosmetic reasons and does therefor not give any help.
Let's say you have built the product between two automata autx and auty:
prod = spot.product(autx, auty)
then
pairs = prod.get_product_states()
will return an array of pairs of the form [(x0,y0),(x1,y1),....].
State i in the product corresponds to states pairs[i][0] in autx, and
pairs[i][1] in auty.
See https://spot.lrde.epita.fr/ipynb/product.html around cell 10 for a
concrete example, and a tip about using show("1") in this context.
> Is it even possible to do this, meaning getting directly from the acc states of the product automaton to the acc states/runs of the Kripke structure?
You should probably look for the accepting SCCs of the product, not
only its accepting states.
You could list all states that belong to acceptings SCCs of the
product with something like
si = spot.scc_info(prod)
n = si.scc_count()
for i in range(n):
if si.is_accepting_scc(i):
for s in si.states_of(i):
print(s)
Unfortunately, we do not yet have any online example of use of
scc_info in Python. You can find some in the test suite, or simply
look at the C++ documentation for this class
https://spot.lrde.epita.fr/doxygen/classspot_1_1scc__info.html
> Or do I have to get the accepting runs of the product automaton, e.g., with the x.intersecting_run(y) method and reason with it about the accepting runs in the Kripke structure?
This will only return one accepting run.
--
Alexandre Duret-Lutz
Hello,
I am trying to convert a LTL formula to Buchi automata in MATLAB. I want to
know if you have any script or library that can help me do this?
Thank you and best regards,
Alina Popa
--
Fourth-year Student | Automatic Control and Applied Informatics | Systems
Engineering
Faculty of Automatic Control and Computer Engineering
“Gheorghe Asachi” Technical University of Iasi, Romania
www.ac.tuiasi.ro
<http://www.ac.tuiasi.ro/> | www.tuiasi.ro <http://www.tuiasi.ro/>
Dear Spot Team,
I'm a master's student at Technical University of Munich and I'm currently writing my Master's Thesis in the research field of path planning for autonomous cars.
I came across Spot on the internet and I think it's a very nice tool that fits exactly my needs: I've got a discrete finite automaton (with certain attributes/APs per node) and I want to check, if this automaton satisfies a certain LTL specification. Especially, my intention is to find all path in my automaton, that satisfy a LTL specification. I've already installed Spot on my computer and tried to implement this with Python. Now I've got the following two questions:
1. What is the most simple and fastest way of defining a spot kripke graph, based on my own automaton (which is basically just a dictionary with nodes, that hold certain attributes and parent/child relations) ? Is there a possibility of including my nodes and transitions step by step into a spot kripke graph or do I have to convert my automaton at first into e.g. the HOA format and afterwards import this HOA-string as a kripke graph?
2. Building the product of a LTL formula (resp. the Büchi automaton) with the kripke graph leads to a object of the class twa_product. Is there a possibility of transforming this product back into a kripke structure or exporting it as a simple dictionary, so that I can make further computations on this "reduced" graph?
I hope you can help me with my questions and maybe provide some simple code examples. Thank you very much in advance!
Yours sincerely,
Patrick Halder
Hello,
I have noticed two types of errors that seem to occur when telling ltl2tgba to output unambiguous Büchi automata (UBA).
One seems to be some kind of assertion triggering and happens only in combination with the flag „—low“. That is,
on running:
ltl2tgba —low -U -B -f $FRML
the tool occasionally exits with exit code 2 and:
„ltl2tgba: print_hoa(): automaton has transition-based acceptance despite prop_state_acc()==true“
This happens for example for the formula:
(G(!(G("2")))) & (("1") | (F("2")))
In some cases the UBA generated by ltl2tgba seem to be incorrect as well, and I don’t think this has to do with the „—low“
flag. An example formula is
(("2") W (G("1"))) -> (G("1"))
To reproduce these behaviors you can run ltlcross on the attached file „error“, as follows:
cat error | ltlcross —-lbt-input ‚ltl2tgba -U -B —-low -f %f >%O' 'ltl2tgba -f %f >%O'
Best regards,
Simon