Is it possible to minimize the image of a function with an Optimizer? If not, how else would I go about achieving it?
The function is defined as (declare-fun vmorph (V) V)
where V is
(declare-datatypes () ((V V1 V2 V3 V4 V5 V6)))
.
There's other stipulations that make vmorph neither surjective nor injective. Instead of just ruling out those two I'd like to minimize the image of vmorph in the first place, ideally mapping all Elements to the same element. If it were python it would be something like:
a = len({vmorph(v) for v in V})
minimize(a)
Where minimize is the z3 functionality I'm looking for.