My name is Roi and I'm an Msc student at Bar Ilan University (Israel).
I'm trying to use the spot tool (python version) and I'm trying to figure
out how to build spot-automata (spot.twa_graph object) type when my input
is the edges, states and accepting states.
can you help me please with that?
In addition, is there an example of Angluin implementation using Spot?
Regards,
Roi
On Tue, Oct 6, 2020 at 5:09 PM Niklas Metzger
<niklas.metzger(a)cispa.saarland> wrote:
>
> Hi Alexandre,
>
> thank you for your fast response! I’m a bit confused on the meaning of creation time:
>
> >>> import spot
> >>> f = spot.formula("Fa")
> >>> ff = spot.formula("Ga")
> >>> spot.formula.Or([f, ff])
> spot.formula("Fa | Ga")
> >>> f = spot.formula("Ga")
> >>> ff = spot.formula("Fa")
> >>> spot.formula.Or([f, ff])
> spot.formula("Fa | Ga")
> >>> n = spot.formula("Ga")
> >>> nn = spot.formula("Fa")
> >>> spot.formula.Or([n, nn])
> spot.formula("Fa | Ga")
>
> Is there some internal representation that does not create new objects if seen before?
Yes.
You can also use print(f.id()) to display the "serial number" of
formula f. That's an identifier incremented for each new formula (new
in the sense "not seen before"). This value is used to sort formulas
(e.g., order the operands), or as hash value. But it is not
necessarily unique in the case that so many formulas are created that
the counter loops.
--
Alexandre Duret-Lutz
Hi!
I’m currently using Spot to manipulate LTL formulas (using Python) and encountered the following behaviour: The result of "spot.formula.Or([x,y])” possibly changes the order of the subformulas, e.g. globally will appear in front of finally. Is there a way to build formulas that stick to the given order?
Best and thanks in advance
Niklas
Dear Spot team,
Thanks for developing the nice tool Spot. I am a researcher at
National University of Singapore using Spot in my research.
I have a question about translating LTL to buechi automata using spot.
My LTL properties are constraints over input/output sequences of a program,
e.g.,
output W, output P always responds to input B
(false R (! iB | (true U (oW & X (true U oP)))))
where iB indicates that input B and oP indicates output P.
The buechi automata of the negation of above formula given by Spot is in
the following:
[image: image.png]
Here is a input/output trace to be evaluated:
iH oZ iH oR iC oR iH oX iC oR iH oX iD oZ iJ oT iD oT iF oR iH oP iH oR iH
oP iH oR iH oP iH oR iH oP iH oR iH oP iH oR iH oP iH oR iH oP iH
*What I do not understand is that the proposition on the transition from
state 0 to state 2 is iB & oW. How can I interpret it?*
Given the input/output trace, there is no element that is iB and at the
same time is oW. I assume the verification feeds element in the trace to
the automata one by one.
Do I miss something e.g., wrong configuration on the translation or some
basic knowledge about verification? Can you give me some advice on this
issue?
Thank you very much.
Best regards
Zhen
--
Zhen Dong
Senior Research Fellow
National University of Singapore
https://www.comp.nus.edu.sg/~dongz/
Hi Spot Team!
First of all, thanks for providing and maintaining such a great tool!
I stumbled over a problem with formulas in polish notation: Parsing a formula like “-> a b” returns the “syntax error, unexpected implication operator” (Also tested on the website). It seems like implication and equivalence are not supported by that parser. Is there a technical reason for that and if not, could you give me a hint how to implement it?
Thanks in advance
Niklas Metzger
Hello,
I am encountering a bug where Spot segfaults when I try to postprocess a
relatively large automaton. I have uploaded the file to
http://reedoei.com/files/smaller-inner.aut.zip; it has 113930 states and
1537155 edges. I tried to come up with a smaller example but was having
trouble doing so. Below is the sequence of commands, using the Python
bindings, to reproduce this bug for me:
import spot
A = spot.automaton('smaller-inner.aut')
B = A.postprocess('BA', 'Deterministic', 'Low') # Crashes here
B.save('postprocessed.aut')
I also tried using various other others for postprocess such as Small and
Low, or Any and High (because Any and Low/Medium does nothing).
I am using Ubuntu 18.04, Python 3.6.9, and Spot 2.8.7 (but also tried with
2.8.6).
Thank you,
Reed Oei
Hello,
I am using spot to check randomly generated LTL formulas for
satisfiability and extract traces / words fulfilling the formula if
satisfiable. I have come across behavior which I do not understand and
am therefore asking on this list about it. I would be very happy if you
could help me with the issue.
I'm using the python interface and call
some_formula.translate().accepting_run()
which usually either returns None if unsatisfiable or a valid trace,
which I then convert using spot.twa_word() and inspect afterwards. Most
of the time, this works as expected, but I've experienced several cases
now where the produced trace contains a False (0) literal. Here, two
cases must be distinguished:
1. The formula is satisfiable
There exist formulas like "!b & e U (a & b & c)" which are quite
obviously satisfiable, but still accepting_run() returns a trace with 0
in it, although there are other valid traces without False in them.
2. The formula is unsatisfiable
There also exist formulas like "X!c & X(b & c & d & a U e)" which are
unsatisfiable, and accepting_run() returns a trace with 0 in it.
Normally, for unsatisfiable formulas (like "a & !a") it just returns None.
I'd find point 2 alone totally okay, but I think point 1 is actually
problematic since the trace I'm looking for exists, but isn't returned.
So my question is whether I'm using spot incorrectly somehow or if this
is actually a bug. I also attached a small list of formulas and traces
with the described behavior. BTW I'm on Linux, Ubuntu 16.04, using spot
2.8.7 compiled from the tar.gz.
I'm looking forward to your responses!
Regards,
Jens Kreber
On Thu, Feb 27, 2020 at 10:33 AM Ranjana N <ranjana.nallamalli(a)gmail.com> wrote:
>
> The following website:
>
> spot.lrde.epita.fr
Thanks. Our sysadmin said he banned all non-french IPs two days ago
because of a DDOS attack that would fill the ram of our shared web
server in just 1sec. Unfortunately he had no time yesterday to work
on this.
He tried to lift the ban a few minutes ago, and the server went down
in a couple of seconds again. He is currently trying to look for a
smaller range of IPs to block.
--
Alexandre Duret-Lutz
Dear all,
I was wondering if there exists an option to disable the generation of
the documentation.
Thank you in advance,
Best,
Jaime
--
--------------------------------------------------------------
Jaime Arias https://lipn.univ-paris13.fr/~arias
CNRS Research Engineer (LoVe Team)
LIPN, CNRS UMR 7030
Institut Galilée - Université Paris 13
99 Avenue Jean-Baptiste Clément, F-93430 Villetaneuse, France
tel:[+33] 01 49 40 40 67
--------------------------------------------------------------
Have been trying to access the resources at your website but not getting
through. Is the site down?
Kindly throw some light.
Thanks & Regards
Ranjana
New Delhi