Я только начал использовать Alloy. У меня есть вопрос о следующем минимальном примере:
module test
abstract sig MySig {
my_rel : set MySig
}
//fact my_rel_irrefl {no iden & my_rel } // this works
fact my_rel_irrelfl {my_rel not in iden} // this does not work
run {}
Почему второй my_rel_irrelfl не работает? Я думал, что, например.
MySig = {N0,N1,N2} идентификатор = {(N0,N0),(N1,N1),(N2,N2)}
Если есть элемент (x,x), где x в MySig в отношении my_rel, то он также должен быть в ident.
Тем не менее, я получаю эту модель:
т.е. тот, где my_rel является рефлексивным.
check {pred1 <=> pred2}
. Это даст вам контрпример, где одно верно, а другое нет. - person Hovercouch   schedule 08.01.2021