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 F
I 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
TLAPS is failing to prove a very simple claim, and showing this in "Interesting Obligations":
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 PTLworks in this case, but similar cases withASSUME / PROVEdon't. e.g.I haven't been able to track it down, but it seems that renaming variables (e.g. changing
itonin the definition ofF) 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: