Estou um pouco confuso porque realmente não sei por que o Alloy Analyzer não encontra uma solução para esse problema simples. Só quero um id único para cada pessoa...
abstract sig Person {
id: Int
} {id > 0}
sig Candidato extends Person {
votiRicevuti: Int
}
sig Elettore extends Person {
votiDati: set Voto
}
sig Voto {
votante: Elettore,
votato: Candidato
}
fact {
#Candidato > 0
#Elettore > 0
}
fact {
all p1, p2: Person |
p1.id != p2.id
}
run {} for 4 but 4 Elettore, 4 Candidato