Closed OCHyams closed 5 years ago
I intend for the dexter/examples/ directory to contain examples but for this work I've been using it as a sort of regression test set.
The proposition (p After q) literally means "p holds after q holds". Because of the prefix notation, After(p, q) reads as "after p holds, q holds" - to me at least - which is of course incorrect (it is actually "after q, p holds").
I've kept the operands in this order to match the other temporal binary operators.
I think there's a serious case for swapping all the binary operator operands to make parsing the prefix notation easier (for humans). The downside is that this could really confuse people who regularly see prefix notation and those who know LTL well already.
I'll avoid updating this with my up to date changes until #31 is accepted.
I'm closing this because it's now quite out of date. I'll put up another PR soon.
IMPORTANT:
Expect(var, value)
-- this will be replaced with a full program state command.The result is only pass or fail -- the model either holds or it does not.
DexVerify is a dexter command which can be used to verify a proposition about the program trace.
A proposition can be made up of atomic propositions (assertions about what the program state) and propositions (recursive!), connected by operators. The operators can be boolean or temporal. The terminology and theory behind this is explained in the document LTL_word.md included with this commit.
The term LTD is used to describe the DexVerify subcommands which are based on Linear Temporal Logic (LTL).