Ниже часть моей работы на данный момент. По какой-то причине я получаю циклы и двусторонние соединения между моими линиями и одиночные соединения из сообщений в строки. Я не понимаю, почему никогда не бывает более одного сообщения для линейных соединений. Мои факты, вероятно (скорее всего), немного неверны. Спасибо за помощь.
some sig Line{
nextLine: some Line,
}
sig Message{
formedOfLines: Line,
}
fact MessageHasMoreThan1LineHasNextLine{
all m:Message|#m.formedOfLines>1 implies #m.formedOfLines.nextLine>0
}
fact NoNextLineIsSelf
{
all l1,l2:Line | l1=l2 implies l1.nextLine!=l2
}
fact LineBelongsToSomeMessage
{
all l:Line | l in Message.formedOfLines
}