-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Debug/Analyze does not correctly highlight unrealizable cores #54
Comments
A couple of things:
|
Oh, and 5: This specific example returns for me: set(['\t\t\t []<>( ((!s.bit0 & !s.bit1 & !s.bit2))) ', '!e.fire & e.person & !s.radio & !s.bit2 & s.bit1 & !s.bit0 & next(e.fire) & next(!e.person)', '!e.fire & !e.person & !s.radio & !s.bit2 & s.bit1 & !s.bit0 & next(e.fire) & next(!e.person)', 'e.fire & !e.person & !s.radio & !s.bit2 & s.bit1 & !s.bit0 & next(e.fire) & next(!e.person)', '!e.fire & e.person & !s.radio & s.bit2 & !s.bit1 & s.bit0 & next(e.fire) & next(!e.person)', ' []( ((!s.bit0 & !s.bit1 & !s.bit2)) -> ( ((!next(s.bit0) & !next(s.bit1) & !next(s.bit2)))| ((!next(s.bit0) & next(s.bit1) & next(s.bit2))) | ((next(s.bit0) & !next(s.bit1) & !next(s.bit2))) ) ) & []( ((!s.bit0 & !s.bit1 & s.bit2)) -> ( ((!next(s.bit0) & !next(s.bit1) & next(s.bit2)))| ((!next(s.bit0) & next(s.bit1) & next(s.bit2))) | ((next(s.bit0) & !next(s.bit1) & !next(s.bit2))) ) ) & []( ((!s.bit0 & s.bit1 & !s.bit2)) -> ( ((!next(s.bit0) & next(s.bit1) & !next(s.bit2)))| ((next(s.bit0) & !next(s.bit1) & !next(s.bit2))) | ((next(s.bit0) & !next(s.bit1) & next(s.bit2))) ) ) & []( ((!s.bit0 & s.bit1 & s.bit2)) -> ( ((!next(s.bit0) & next(s.bit1) & next(s.bit2)))| ((!next(s.bit0) & !next(s.bit1) & !next(s.bit2))) | ((!next(s.bit0) & !next(s.bit1) & next(s.bit2))) | ((next(s.bit0) & !next(s.bit1) & next(s.bit2))) ) ) & []( ((s.bit0 & !s.bit1 & !s.bit2)) -> ( ((next(s.bit0) & !next(s.bit1) & !next(s.bit2)))| ((!next(s.bit0) & !next(s.bit1) & !next(s.bit2))) | ((!next(s.bit0) & !next(s.bit1) & next(s.bit2))) | ((!next(s.bit0) & next(s.bit1) & !next(s.bit2))) ) ) & []( ((s.bit0 & !s.bit1 & s.bit2)) -> ( ((next(s.bit0) & !next(s.bit1) & next(s.bit2)))| ((!next(s.bit0) & next(s.bit1) & !next(s.bit2))) | ((!next(s.bit0) & next(s.bit1) & next(s.bit2))) ) ) ', 'e.fire & !e.person & !s.radio & s.bit2 & !s.bit1 & s.bit0 & next(e.fire) & next(!e.person)']) which is... not what we want. It appears to contain (a) the offending goal, (b) the topology, and (c) every valid initial state. Aaand thus why the code is disabled pending further evaluation :) |
Additional related issue: analyzing examples/unsynth/unsynth_simple (refined analysis) gives the following error: Traceback (most recent call last): This seems to stem from modifications to fsa.py. |
I have updated the Refine Analysis part to work with the latest fsa.py and strategy.py. It is committed to 8f65fe1. The branch is called You can also take a look at 8085cf1. The branch is called |
I got the following highlight (with LTLMoP/development)
but I think it should be (with vramen/cores)
I can also obtain the same result with the following replacement in specEditor.py:
FROM
#highlight guilty sentences
#special treatment for goals: we already know which one to highlight
if self.proj.compile_options["parser"] == "structured":
for h_item in self.to_highlight:
tb_key = h_item[0].title() + h_item[1].title()
if h_item[1] == "goals":
self.text_ctrl_spec.MarkerAdd(self.tracebackTree[tb_key][h_item[2]]-1, MARKER_LIVE)
elif self.proj.compile_options["parser"] == "slurp":
for frag in self.to_highlight:
tb_key = frag[0].title() + frag[1].title()
self.text_ctrl_spec.MarkerAdd(self.tracebackTree[tb_key][frag[2]]-1, MARKER_LIVE)
self.analysisDialog.markFragments(*frag)
else:
print "Fragment marking not yet supported for this parser type"
TO (copied from varmen/cores' branch)
if not realizable or not nonTrivial:
#only do cores if unrealizable or trivial
The text was updated successfully, but these errors were encountered: