WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Can't solve even when conclusion matches assumption exactly #247

@talex5

Description

@talex5

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)
Image

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions