Conversation
|
Happy New Year to everybody! Would somebody have some time to look at this PR? |
|
I can try. |
|
I added some more functions, in particular about folding a function, and I believe this is now in a state that can be merged into the master branch. |
|
This fails for me with tlapm from the current main: |
That's annoying, in particular since I did not at all touch that proof (and of course |
|
I retried it several times. TLAPM was built at the same commit as you mentioned. At Linux. The Z3 version is this: Then I tried upgrading Z3 (to |
modules/SequencesExtTheorems.tla
Outdated
|
|
||
| THEOREM ReverseSubSeq == | ||
| ASSUME NEW S, NEW seq \in Seq(S), | ||
| NEW m \in 1..Len(seq), NEW n \in 1..Len(seq) |
There was a problem hiding this comment.
The same theorem is formulated with n \in 0.. in the proofs file. Is the difference on purpose?
There was a problem hiding this comment.
Thanks for catching this – it must have been an oversight in a previous commit. The hypothesis n \in 0..Len(seq) is weaker and should therefore be preferred. Fixed.
Looks like "prove once, test everywhere" since Z3 apparently behaves differently for different operating systems (my TLAPS installation also has the version that you mention). Let me know if I can help with fixing the proofs that fail with the newer version of Z3. |
Signed-off-by: Stephan Merz <stephan.merz@loria.fr>
Signed-off-by: Stephan Merz <stephan.merz@loria.fr>
Signed-off-by: Stephan Merz <stephan.merz@loria.fr>
Signed-off-by: Stephan Merz <stephan.merz@loria.fr>
7925ce0 to
1de44e7
Compare
This PR mainly adds theorems about folds on functions and sequences.
I haven't tried to include running proofs as part of the CI.