[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlaplus] TLAPS-proved invariant violated in TLC?



Hehe, I never thought my cargo cult approach could be of any good use. :D

Best regards,
J

On 17.10.2015 10:32, Stephan Merz wrote:
> Dear Jaak,
> 
> what should not have worked in your proof are the level-2 steps that prove a non-temporal obligation "BY PTL". (Note that the proof does not even use the CASE assumption or the definitions of formulas NextComponent.)
> 
> I just tried this and PTL indeed accepts these steps. It wrongly considers the assumption "Invariant" to occur in a boxed context (i.e., it assumes it to always hold) and therefore has no problem proving that Invariant' must be true. In fact, it even accepts the bogus proof
> 
>  <1>2. Invariant /\ [Next]_vars => Invariant'
>    <2> SUFFICES ASSUME Invariant,
>                        [Next]_vars
>                 PROVE Invariant'
>        OBVIOUS
>    <2> QED BY PTL
> 
> This is a serious bug in the handling of temporal contexts that we need to fix in the code of TLAPS. Until we do so, please be sure not to use PTL for a non-temporal proof in the context of a SUFFICES ASSUME ... PROOF step.
> 
> Thanks for reporting this!
> 
> Stephan
> 
>> On 16 Oct 2015, at 13:07, Jaak Ristioja <jaak.r...@xxxxxxxx> wrote:
>>
>> Hello!
>>
>> During designing a (proprietary) protocol I've reached a point where
>> I've proved (all highlighted green in TLA+ Toolbox) an invariant like
>>
>>  THEOREM InvariantHolds == Spec => []Invariant \* All green
>>  <1>1. Init => Invariant PROOF OMITTED \* For this e-mail
>>  <1>2. Invariant /\ [Next]_vars => Invariant'
>>    <2> SUFFICES ASSUME Invariant
>>                        [Next]_vars
>>                 PROVE Invariant'
>>        OBVIOUS
>>    <2>1. CASE NextComponent BY PTL
>>    <2>2. CASE NextComponent2 BY PTL
>>    \* ...
>>    <2>3. QED BY <2>1, <2>2 (* ... *) DEF Next
>>  <1>3. QED BY <1>1, <1>2, PTL DEF Spec
>>
>> But when I run the protocol TLC it reports that the invariant Invariant
>> is violated. After debugging this for a while I found a bug in my
>> Invariant which explains why it failed in TLC. Is it incorrect of me to
>> assume TLAPS has successfully proved the theorem when the TLA+ Toolbox
>> hightlights the theorem all green a pressing CTRL+G on it twice? Am I
>> doing something wrong or is this a bug?
>>
>> Best regards,
>> Jaak
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups "tlaplus" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@xxxxxxxxxxxxxxxx.
>> To post to this group, send email to tla...@xxxxxxxxxxxxxxxx.
>> Visit this group at http://groups.google.com/group/tlaplus.
>> For more options, visit https://groups.google.com/d/optout.
>