Skip to content

suggest boolean expressions for "-wp-prop" arguments

ID0002285: This issue was created automatically from Mantis Issue 2285. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0002285 Frama-C Plug-in > wp public 2017-02-27 2019-10-17
Reporter Jochen Assigned To correnson Resolution won't fix
Priority low Severity feature Reproducibility always
Platform Silicon-20161101 OS xubuntu OS Version -
Product Version Frama-C 14-Silicon Target Version - Fixed in Version -

Description :

Currently, the semantics of "-wp-prop" arguments is unexplained and difficult to understand, when negation and more than one label is used.

For example, using the attached file, "-wp=prop=A,B,-C" selects l4,l5,l6, whereas "-wp-prop=-C,B,A" selects all but l3, and so does "-wp-prop=A,B,c" (although the set of "C"-labelled lemmas is the complement of that of the "c"-labelled lemmas).

I think, parsing arbitrary boolean expressions (built from "!", "&&", "||") isn't more difficult that the current mechanism, but is easier to describe in the manual and to understand.

Alternatively, "-" could be kept as negation, "," could be used for cunjunction only, and the results of multiple args "-wp-prop=X -wp-prop=Y" could be or-ed together; this would at least allow to express arbitrary sets in disjunctive normal form.

Additional Information :

Complex set expressions arise when labels are used during proof development to attach prover names (and even options) to properties. Using calls like "frama-c -wp -wp-prop=PROVE_WITH_CVC4 -wp-prover=cvc4 ..." can save a lot of proving time that is normally wasted by unsuccessful attempts by unsuitable provers. Other labels that can save time are "TODO", "NEEDS_LONG_TIMEOUT", etc. This way, boolean expressions arise in a natural way; and the user needs to be sure about their semantics, in order not to overlook proof obligations due to splitting by prover.

Attachments

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information