[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tlaplus] Verifying fairness | TLC Errors | Refinement | Verifying properties
- From: Jones Martins <jonesmvc@xxxxxxxxx>
- Date: Tue, 19 Oct 2021 10:50:53 -0700 (PDT)
- Ironport-hdrordr: A9a23:gs4sVqpt5glRd9/9yx6ivpcaV5q0eYIsimQD101hICG9E/bo7fxG+c5wuCMc5wxhPE3I9erwX5VprxvnhOpICad4B8bWYOCkghrYEGlahbGSsQEIYheOgdK1tp0QCJSXvbbLfCZHZLjBkXCF+o0bsaa6GcmT7I+0vhVQpGdRGt1dBihCZTpzeXcGPDWua6BJcqZ1J6J81lmdkLcsAPhTxENoYwByzOe7564OrSRmO/bWgzP+8A9AIYSbYn2l9yZbaSpGxfMJ8GTOkQD1ooWl99+hzAPEvlWjn6hrpA==
Hello, esteemed colleagues
Having read Specifying Systems twice and a large part of the Hyperbook, I still have some doubts concerning how TLC works. I am not perfect, so it's possible I might have missed or misunderstood key concepts.
I have a few questions. I'd be able to separate them in different "conversations" if required.
1) Since Weak and Strong Fairness are based on the “eventually” and “always” operators, I'd like to know how TLC verifies them. More specifically, since behaviors are an infinite sequence of states, how can the model checker guarantee something eventually or always happens? Wouldn't that be impossible? What am I missing here?
2) Why does TLC not show which properties or invariants fail?
3) Is it correct to say verifying refinement works the same way as verifying properties?
4) Is it possible to refine three (or more) specifications (C implements B, which implements A) such that:
A changes three variables atomically.
B changes two of those atomically and another one in the next step.
C changes each one in a different step.
My rationale is that C contains B steps, and B contains A steps.
Having read this: https://www.hillelwayne.com/post/refinement/
Hillel says this: “We couldn’t write a spec which sets the lock and updates tmp as two separate actions.” Why?
5) From 14.1 of Specifying Systems, when verifying properties:
Spec == Init /\ [Next]_vars /\ Temporal
Prop == ImpliedInit /\ [ImpliedAction]_pvars /\ ImpliedTemporal
Init /\ [Next]_vars => ImpliedInit /\ [ImpliedAction]_vars
Spec => ImpliedTemporal
Why does TLC ignore Temporal?
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/61176d59-aab7-462f-ab73-d711b470fba3n%40googlegroups.com.