Вот версия, которая может работать, в зависимости от того, как структурированы данные. Основной совет - использовать exists
вместо forall
, так как вы ищете значение. Обратите внимание, что это полностью не проверено, поскольку нет тестовых данных.
function var int: to_index(array[int,int] of int:matrix, int:pid, int:vert, set of int: TOT_VERT) =
let {
var TOT_VERT: ix;
constraint
exists(i in TOT_VERT) (
if matrix[i,0] = pid /\ matrix[i,1] = vert then
ix = i
endif
);
} in ix
;
Примечание: я также исправил синтаксис для matrix
.