I'm not super savvy on the maths, so please do not destroy me if I've used the wrong terminology here.
What I would like to solve with z3 is something like this:
x + y = z
Assume x, and z are ints.
Where y is an array of constants such as (12,13,14,-13) which may be used, reused, or not used as the solver sees fit.
How would I translate that into z3's functionality? I suspect the answer is generating a constraint for every possible combination of those constants, but I have yet to see an example quite like what I am trying to do.
In other words how would I translate a problem like the "combination of sums" found on many programming interviews such as:
Finding all possible combinations of numbers to reach a given sum
Or
https://leetcode.com/problems/combination-sum/description/
into z3 notation?
To be very precise the piece which is unclear is how to communicate to the solver that it pay pick from an array of choices as many times as it likes.