-
Notifications
You must be signed in to change notification settings - Fork 2
Regression new updated expected output #1044
base: master
Are you sure you want to change the base?
Conversation
[Error] Compiler: Only claims and simplification rules are allowed in proof modules. | ||
[Error] Compiler: Only claims and simplification rules are allowed in proof | ||
modules. | ||
Source(rule-spec.k) | ||
Location(6,10,6,43) | ||
6 | rule <k> doIt(foo) => doIt(0) ... </k> | ||
. ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
[Error] Compiler: Had 1 structural errors. | ||
Traceback (most recent call last): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess for these errors we can:
- Add option
--no-wrap-exc
topyk prove ...
, and pass it through tokprove --dry-run ...
- Implement custom error handling for
pyk prove ...
similar to what we do forkompile
The only challenge is that here we are using a temporary file as the JSON dump, and that will show up in the error message. So I guess we also need to:
- Allow specifying
--tmp-dir ...
forpyk prove ...
, and use that directory for dumping the temporary files. - Use a more deterministic filename for the temporary JSON file we dump.
OR
- Dump the JSON in a file immediately next to the spec file as a convention.
OR
- Strip that line of output in the testing harness.
kore-exec: [] Warning (WarnStuckClaimState): | ||
The configuration's term unifies with the destination's term, but the implication check between the conditions has failed. Location: a2-spec.k:7:1-8:18 | ||
Context: | ||
(InfoReachability) while checking the implication | ||
#Ceil ( bar ( X ) ) | ||
#And | ||
#Not ( #Ceil ( baz ( X ) ) | ||
#And | ||
{ | ||
bar ( X ) | ||
#Equals | ||
baz ( X ) | ||
} ) | ||
#And | ||
<k> | ||
end ( bar ( X ) ) ~> .K | ||
</k> | ||
#And | ||
{ | ||
true | ||
#Equals | ||
X <Int 0 | ||
} | ||
[Error] Prover: backend terminated because the configuration cannot be rewritten further. See output for more details. | ||
APRProof: A2-SPEC.s2 | ||
status: ProofStatus.FAILED | ||
admitted: False | ||
nodes: 5 | ||
pending: 0 | ||
failing: 1 | ||
vacuous: 0 | ||
stuck: 1 | ||
terminal: 0 | ||
refuted: 0 | ||
bounded: 0 | ||
execution time: 0s | ||
Subproofs: 0 | ||
1 Failure nodes. (0 pending and 1 failing) | ||
|
||
Failing nodes: | ||
|
||
Node id: 5 | ||
Failure reason: | ||
Matching failed. | ||
The following cells failed matching individually (antecedent #Implies consequent): | ||
K_CELL: end ( bar ( X:Int ) ) #Implies end ( baz ( X:Int ) ) | ||
Path condition: | ||
#Ceil ( bar ( X:Int ) ) | ||
Failed to generate a model. | ||
|
||
Join the Runtime Verification Discord server for support: https://discord.gg/CurfmXNtbN |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This failure information message contains largely the same information as the original message, basically the part that failed and path condition to it. Are we happy with this new way of presenting information?
<k> | ||
"open" ~> "(\"foo\", \"r\")\n" ~> "" ~> .K | ||
</k> | ||
<generatedTop> | ||
<k> | ||
"open" | ||
~> "(\"foo\", \"r\")\n" | ||
~> "" | ||
</k> | ||
<generatedCounter> | ||
0 | ||
</generatedCounter> | ||
</generatedTop> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pyk prints out KSequence
on newlines, as an aesthetic choice. Do we want to allow this and make it default, or retain the original version? I guess printing KSequence
on newlines would look bad if there is a KSequence
inside of some other construct in the configuration.
<k> | ||
x = ( 0 ~> .K ) ; .RecordDescr ~> .K | ||
</k> | ||
<generatedTop> | ||
<k> | ||
... key: x = value: 0 ~> .K ; .RecordDescr ~> .K | ||
</k> | ||
<generatedCounter> | ||
0 | ||
</generatedCounter> | ||
</generatedTop> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to be a bug in how pyk unparser works.
<k> | ||
bar ( 0 , 0 ) ~> bar ( 0 , 0 ) ~> .K | ||
</k> | ||
<generatedTop> | ||
<k> | ||
bar ( 0 , 0 ) | ||
~> bar ( 0 , 0 ) | ||
</k> | ||
<generatedCounter> | ||
1 | ||
</generatedCounter> | ||
</generatedTop> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should be including the tail of the sequence every time in pyks unparser.
I'm opening this issue to discuss the various changes that running
make update-results
causes inregression-new
test-suite. I figure we can keep this open as we triage all these things.