以下是我迄今为止的部分工作。由于某种原因,我的线路和从消息到线路的单一连接之间存在循环和双向连接。我不明白为什么线路连接的消息永远不会超过一条。我的事实可能(很可能)有点错误。谢谢您的帮助。
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
}