You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Z3 defines model.decls() as functions that need to be called, even for constants having arity 0. CVC5 does not even define the arity method on constants (requiring the getattr trick above) nor the name method (requiring the use of str).
For expressions that are of a datatype (ADT) sort, you can get the name of the constructor in Z3 like so:
exp.decl().name()
In CVC5, this throws:
exp.decl().name()
^^^^^^^^^^
File "/Users/snip/lib/cvc5/build/src/api/python/cvc5/pythonic/cvc5_pythonic.py", line 418, in
decl
raise SMTException("Declarations for non-function applications")
cvc5.pythonic.cvc5_pythonic.SMTException: Declarations for non-function applications
Probably because constructors are not considered uninterpreted function applications.
The text was updated successfully, but these errors were encountered:
This is not supported in CVC5 and I don't see an obvious alternative.
2. Z3 has Solver.from_string:
s = z3.Solver()
s.from_string("\n".join(query))
This is also not supported in CVC5 and in fact I'm not aware of any way to process SMTLIB programmatically in CVC5 (maybe I'm wrong though).
3. Z3 models have Model.sorts that returns the list of sorts involved in the model:
z3sort_names = set(s.name() for s in z3sorts) | set(self.sorts.keys())
Not in CVC5.
4. Z3 uninterpreted sorts have Model.get_universe(SortRef) returning all elements in the interpretation: univ = z3model.get_universe(z3sort)
may return:
Two examples of differences of the CVC5 API to the Z3 API:
Z3 defines
model.decls()
as functions that need to be called, even for constants having arity 0. CVC5 does not even define thearity
method on constants (requiring thegetattr
trick above) nor thename
method (requiring the use ofstr
).In CVC5, this throws:
Probably because constructors are not considered uninterpreted function applications.
The text was updated successfully, but these errors were encountered: