Simulating some notion of linearity #6013
Replies: 3 comments
-
Can you clarify what you mean by used. You can examine query to see what relations it depends on. You can build a dependence graph of the rules to to identify that something is used indirectly. In case the system is unsat, you can examine the proof object to see what relations are used, where, and how. You can also add extra logic to your relations to keep track how many times a relation has been used. |
Beta Was this translation helpful? Give feedback.
-
By used I mean that a certain relation has been consumed in any resolution rule (I mean rules added through Could you please highlight the relevant parts of the Z3 API which allow this? Thank you very much for the quick answer! |
Beta Was this translation helpful? Give feedback.
-
This would be in encoding of the problem, rather than something that is specific to Z3 or its API. You have to setup the rules in such a way that a derivation is only allowed if a rule is applied only once. |
Beta Was this translation helpful? Give feedback.
-
I do realize Z3 is designed to work with FOL, but ..
Supoose I'm using a Fixedpoint context, with a set of rules and variables, how difficult would it be fo Z3 to report if a certain relation has been used in a query or not? Or perhaps a report on the proof it came up with, that I can then analyse myself?
I want to do this in order to enforce that a certain relation is used exactly once inside a Fixedpoint. Do you think this is feasible?
Beta Was this translation helpful? Give feedback.
All reactions