CiaoPP: `trust' qualifier and predicate definition #113
Replies: 1 comment 1 reply
-
This is indeed not really necessary. You can add: to avoid warnings from the compiler.
The message comes from CiaoPP checking the assertions for the What CiaoPP is saying is that for those calls to It is easy to ensure that the calls to Then: Also, you can replace the By default entry declarations are automatically inserted from the preconditions of the Btw what environment are you using CiaoPP from (Emacs, VSC, playground, terminal, ...)? Cheers, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Let us consider the following example, which focuses on type checking in presence of built-in and user-defined predicates with 'trust' qualifiers:
I see that the addition of `pred' assertions for built-in predicates is supported: this is very useful, when willing to check properties of user-defined predicates calling built-in predicates as in the example.
Something that I do not understand is the necessity of defining predicates for which 'trust' qualifiers are introduced.
For example, in 2005 paper 'Integrated Program Debugging, Verification, and Optimization Using Abstract Interpretation', it is stated that "Assertions can also be used to provide information to the analyzer in order to increase its precision or to describe predicates which have not been coded yet during program development. These assertions have a trust prefix".
I would like to employ 'trust' qualifiers exactly for this purpose, leaving p2 undefined in the example.
Currently, the best I can do is replacing its definition with a 'stub' like 'p2( _ , _ )' which does not seem a satisfactory solution to me; in absence of a definition for p2, the tool raises a 'Predicate p2/2 undefined in source' error.
Can you please clarify how to use 'trust' qualifiers about a predicate without defining that predicate?
Also, when verifying this example, CiaoPP reports that an assertion (one of those automatically placed by the tool) could not be verified:
What is happening here? Why does the call not correspond to any of the accepted modes?
Thank you for your help,
Simone
Beta Was this translation helpful? Give feedback.
All reactions