[Iris-Club] Intention of later(False) in timeless predicate

Robbert Krebbers mail at robbertkrebbers.nl
Mon Aug 22 09:10:47 CEST 2016

Hi Jeehoon,

think of timeless as being invariant under the step-indexes. 
Semantically that means (ignoring resources):

   Timeless P := ∀ n, P 0 → P n

So, now let's think how we could describe that in the logic. An obvious 
guess would be:

   Timeless P := ▷ P ⊢ P

However, this is wrong. Take a look at the following:

        0      1      2      3
   ▷ P  True   P(0)   P(1)   P(2)
   P    P(0)   P(1)   P(2)   P(3)

As you see here, step-index 0 is problematic. According to the semantic 
definition, False would be timeless, but ▷ False ⊢ False does not hold 
at step-index 0.

So, what we somehow would like to do is to "exclude" the 0th step-index, 
and that's where the disjunction with ▷ False comes in:

                0      1      2      3
   ▷ P          True   P(0)   P(1)   P(2)

   P            P(0)   P(1)   P(2)   P(3)
   ▷ False      True   False  False  False
   P ∨ ▷ False  True   P(1)   P(2)   P(3)

Hope this helps.


On 08/22/2016 07:00 AM, Jeehoon Kang wrote:
> Dear Iris Club,
> In the Iris 2.0 documentation, the timeless predicate is defined as
> follows (page 11):
> Γ |- timeless(P) <=> Γ | later(P) |- P ∨ later(False)
> I guess the intention of the later(False) disjunct is allowing more
> predicates to be timeless.  But I am not sure which rule of "Laws for
> the later modality" (page 14) requires the later(False) disjunct.  May I
> ask is it really used?
> Thank you,
> Jeehoon
> --
> Jeehoon Kang (Ph.D. student) <http://sf.snu.ac.kr/jeehoon.kang>
> Software Foundations Laboratory <http://sf.snu.ac.kr>
> Seoul National University <http://www.snu.ac.kr>

More information about the Iris-Club mailing list