Рассмотрим следующую спецификацию в Alloy:
sig Books {}
fun f[b:Books] : Books {
{b':Books | b' = Books -b }
}
run show {}
Предположим, у нас есть экземпляр, для которого $univ = {Books$0, Books$1, Books$2}$. Вычисление функции f с $Books$0$ дает пустой набор вместо ${Books$1, Books$2}$:
f[Books$0]
{}
Есть идеи, почему?