-
Notifications
You must be signed in to change notification settings - Fork 28
Open
Description
TLAPS is failing to prove a very simple claim, and showing this in "Interesting Obligations":
ASSUME NEW CONSTANT BufferSize,
NEW VARIABLE Sent,
NEW VARIABLE Got,
NEW CONSTANT n \in Nat,
\A n_1 \in Nat : Sent >= n_1 => [](Sent >= n_1)
PROVE \A n_1 \in Nat : Sent >= n_1 => [](Sent >= n_1)
I suppose this is to do with the coalescing, but the error is a bit confusing! Is there some way to get tlapm to show what it actually sent to the solver?
BY PTL works in this case, but similar cases with ASSUME / PROVE don't. e.g.
EXTENDS Naturals, TLAPS
VARIABLES Sent
LEMMA L1 ==
ASSUME NEW n \in Nat
PROVE Sent >= n => [](Sent >= n)
OMITTED
THEOREM
ASSUME NEW n \in Nat
PROVE Sent >= n + 1 => [](Sent >= n + 1)
<1> DEFINE F(i) == Sent >= i => [](Sent >= i)
<1> ASSUME NEW n_1 \in Nat
PROVE F(n_1)
BY L1
<1> HIDE DEF F
<1> F(n + 1) OBVIOUS
<1> QED BY DEF FI haven't been able to track it down, but it seems that renaming variables (e.g. changing i to n in the definition of F) often fixes these problems, and they remain fixed when renaming them back again!
I'm using the rolling release (tlapm-1.6.0-pre-x86_64-linux-gnu.tar.gz), with:
$ /opt/tlapm/bin/tlapm --version
80088ef
Metadata
Metadata
Assignees
Labels
No labels