Open alcides opened 3 years ago
Example in #53
Support for SMT-based meta handlers has been removed, to give way to Dependent Types.
You can encode dependencies in SMT meta handlers using dependent, but that will eagerly evaluate the left-hand side (dependant) first, and use its concrete value in the dependent SMT-expression, inlining it.
It would be interesting to aggregate the SMT-based restrictions and try to solve it at the end, as a secondary strategy (will work if "terminals" are ints or SMT-supported datatypes.
(Ab)use Annotated types to refer to the previous fields in the object, or place any SMT-encodable restriction on the field.
A corresponding metahandler will be needed to synthesize based on the previous value, using an SMTSolver
An example of a possible syntax: