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

*From*: Isaac DeFrain <isaacdefrain@xxxxxxxxx>*Date*: Sat, 10 Apr 2021 12:22:03 -0600*Ironport-hdrordr*: A9a23:zzj1gq227lKejfTUGboAyQqjBfdyeYIsi2QD101hICF9WsaTm9my2NES0hHpgDgcMUtQ/+yoEoPoex3h3LRy5pQcOqrneQHgtnehIo0K1/qa/xTLHSri+ulBkZpxaqQWMqyLMXFWhdv3iTPIceoI78KA9MmT6dv273Aodg1ybrEl0gERMHf9LmRTZC1rQaU0D4Cd4M0vnUvcRV0yYt6gDncIG8jvzue78a7OWhINCx455ATmt1rBg9SWLzGi0hgTSD9Jy7s5mFK19zDR3LmpsP2w13bntlP70pVMlNPtjvtFCcCc4/JlSQnEtweyaIxtH4CFpTA+ydvO1H8WlrD3zCsIDoBW0TfxdnvwiQbx0wPguQxek0PK+Bu9uz/fhuDXABg9ENFMgIpFdACx0TtagO1B*References*: <ca126b11-a19f-4cb2-b67c-fcd9df861299n@googlegroups.com>

Hello Seup,

What is the error trace you're getting?

From the actions you have defined, as long as x remains <= 0, we never need to increment y. A possible behavior is Init, SetX, IncX, SetX, IncX, ...

It may be enough to simply change the enabling condition for IncY to x >= 0 (but that may not be "allowed" by what you are trying to specify).

Best,

Isaac DeFrain

On Sat, Apr 10, 2021 at 10:56 AM seup yun <syun4541@xxxxxxxxx> wrote:

Hi,I'm trying to specify "If some operation does not happens, then some condition eventually becomes true"full specification is following:-------------------------------- MODULE test --------------------------------

EXTENDS Integers

VARIABLE x,y

Init ==

/\ x = 0

/\ y = 0

IncX ==

/\ x' = IF x < 5 THEN (x + 1) ELSE 5

/\ UNCHANGED <<y>>

IncY ==

/\ x > 0

/\ y' = IF y < 5 THEN (y + 1) ELSE 5

/\ UNCHANGED <<x>>

SetX ==

/\ x' = -1

/\ UNCHANGED <<y>>

Next ==

\/ IncX

\/ IncY

\/ SetX

Invariant1 ==

/\ x < 6

/\ y < 6

temporalFormula1 == (x > 0) ~> (y = 5)

=============================================================================and behavior spec is:Init /\ [][Next]_<<x,y>> /\ WF_x(IncX) /\ WF_x(SetX) /\ WF_<<x,y>>(IncY)my question is, why temporalFormula1 is violated?I know that (x > 0) ~> (y = 5) means:□((x > 0) => <>(y = 5)) which is\A n \in Nat. \sigma^{+n} ⊨ (x > 0) =>¬□(y = 5) which is¬\A n \in Nat. \sigma^{+n} ⊨ (x > 0) => \sigma^{+n} ⊨ \E m \in Nat. \sigma{+m} ⊨ (y = 5) which is\A n \in Nat. \sigma^{+n} ⊨ (x > 0) => \E m \in Nat. \sigma^{+n+m} ⊨ (y = 5)so, i believed that error-trace should not contains the state that x is -1 but it does.I even tried the formula (FALSE) ~> (y = 5) but it still fails with similar error trace. what's my mistake here?--

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+unsubscribe@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/ca126b11-a19f-4cb2-b67c-fcd9df861299n%40googlegroups.com.

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+unsubscribe@xxxxxxxxxxxxxxxx.

To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/CAM3xQxH4BdebG%2BfYKYN4XokHabKazhRRYS1TzGRWv81%2BOS0Pnw%40mail.gmail.com.

**Follow-Ups**:**Re: [tlaplus] meaning of the lead to (~>) operator***From:*seup yun

**References**:**[tlaplus] meaning of the lead to (~>) operator***From:*seup yun

- Prev by Date:
**[tlaplus] meaning of the lead to (~>) operator** - Next by Date:
**Re: [tlaplus] meaning of the lead to (~>) operator** - Previous by thread:
**[tlaplus] meaning of the lead to (~>) operator** - Next by thread:
**Re: [tlaplus] meaning of the lead to (~>) operator** - Index(es):