package f import input as i exist(array) = true { is_array_or_set(array) count(array)>0 } not_exist(array) = true { is_array_or_set(array) not exist(array) } contain(array, elem) = true { is_array_or_set(array) array[_] == elem } not_contain(array, elem) = true { is_array_or_set(array) not contain(array, elem) } is_array_or_set(array) = true { is_array(array) } is_array_or_set(array) = true { is_set(array) } contain_all(array, array2) = true { set := make_set(array) set2 := make_set(array2) set2 == set & set2 } contain_any(array, array2) = true { set := make_set(array) set2 := make_set(array2) exist(set & set2) # or set[_] == set2[_] } make_set(array) = {x| x:= array[_]}