I tried around a some time to get a rather simple requirement done: I declared a new datatype
(declare-datatypes () ((A (mk_A (key Int) (var1 Int) (var2 Int)))))
where key
should act like a primary key in a database, i.e., each different instance of A
should have a different key
value.
The container of the different instances (functions) looks like the following:
(declare-const A_instances (Array Int A))
So far so good. I tried to create an assertion, such that all instances in A_instances
have a different key
field. Thus, for each index i
in A_instances (key (select A_instances i))
should be distinct. However it returns unknown
.
Someone has any suggestions?