Q about the existential quantifier

47 views
Skip to first unread message

ns

unread,
May 28, 2021, 11:51:09 PM5/28/21
to tlaplus
hello, the Specifying Systems book says that a regular existentially quantified variable functions as a constant. And from the definition this does seem to be the case
    \sigma |= (\E x: F) == \E x: (\sigma |= F)
where \sigma is a trace. However, if I have 
    [] (\E x: F)
its now possible for each state of \sigma to have a different value of x and satisfy this formula. But this now seems closer to a temporal existential. So would it be equivalent to 
    \EE x: [] F
?
thanks

Stephan Merz

unread,
May 29, 2021, 2:42:23 AM5/29/21
to tla...@googlegroups.com
Hello,

the implication 

  [](\E x : F) => \EE x : []F

is indeed valid. The reverse implication need not hold. For example,

  \EE x : []<> << x' # x >>_x

is valid, but

  [] \E x : <> << x' # x >>_x

is a contradiction. If F is a state predicate then

  (\EE x : []F) => [](\E x : F)

is valid.

Stephan


--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/c52798d7-3a1f-4ebd-9025-2a1afa8b3b46n%40googlegroups.com.

Stephan Merz

unread,
May 30, 2021, 12:13:25 PM5/30/21
to tlaplus
I misspoke: even the implication

  [](\E x : F) => \EE x : []F

is not valid in general, but it is valid if F is a state predicate, or somewhat more generally, if x does not occur in the scope of temporal operators. For example, assume that v is a state variable, then

  [](\E x : x = v /\ \E y : [](x=y))

is valid (it suffices at every instant to take x = v, y=x and since both x and y are rigid variables their values never change), but the formula

  \EE x : [](x = v /\ \E y : [](x=y))

will not hold in general: the first conjunct requires that x and v always have the same value, but the second conjunct requires that x remains constant, which is impossible if v changes during the behavior.

For an arbitrary formula F(x), we only have

  [](\E x : F(x)) => \EE x : [](\E y : y=x /\ F(y))

but this formula does not appear to be very useful.

Sincere apologies: temporal quantifiers are really delicate!

Stephan

Reply all
Reply to author
Forward
0 new messages