P.S.: I realize that I was imprecise in my answer. If you want to check that your action formula holds at all transitions of a system whose variables are contained in the tuple vars, you should write[][(y=0 /\ y' = 0) \/ (y # 0 /\ y' = y-1)]_varsHowever, if you want to check that the formula is true for all transitions that change y, you should write[][(y=0 /\ y' = 0) \/ (y # 0 /\ y' = y-1)]_yStephanOn Friday, April 30, 2021 at 3:17:44 PM UTC+2 Stephan Merz wrote:As I wrote, this is an action formula, not a temporal formula expected for properties. If you want to check that this action formula holds at all transitions, you can write[][(y=0 /\ y' = 0) \/ (y # 0 /\ y' = y-1)]_y(you may also use the tuple "vars" as the subscript if it includes y).StephanOn 30 Apr 2021, at 15:09, c.burge...@gmail.com <c.burge...@xxxxxxxxx> wrote:Thanks, clearly it doesn't help when I get my logical syntaxes confused!
I now have:(y=0 /\ y' = 0) \/ (y # 0 /\ y' = y-1)
But when I put this as a property in TLC, I get the error:
"The property ... is not correctly defined."On Friday, April 30, 2021 at 1:48:03 PM UTC+1 Stephan Merz wrote:Hello,1. "not equal" is written # in TLA+ (or /=), "~" is Boolean negation.2. I believe "->" represents implication in your formula, but it is written "=>" in TLA+.3. The expressions on both sides of an implication should be Boolean, but the _expression_ on the right-hand side is y-1.4. The (action) formula corresponding to your informal statement can be written as\/ y' = 0\/ y # 0 /\ y' = y-1A similar formula (but with a slightly different meaning) isy' = IF y # 0 THEN y-1 ELSE 0StephanHi again!
I have the following temporal formula:y'= 0 \/ y ~0 -> y-1
Which I hope says that the next value of y is zero or y-1 if y is not zero.
However, when I put this as a property in TLC, I get the error:
Was expecting ===== or more module body, encountered '~' in Properties at line 1 and token 'y'.
Obviously it's not happy with the ~ (equally unhappy with \lnot), but I'm not sure how to proceed from 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+u...@xxxxxxxxxxxxxxxx.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/f06df008-8efa-4942-bb93-a2ebbbfe7984n%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+u...@xxxxxxxxxxxxxxxx.To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/80bd4635-9dcb-4604-a8fa-30fecd75baedn%40googlegroups.com.