【发布时间】:2012-12-03 08:14:34
【问题描述】:
以下是我迄今为止的部分工作。由于某种原因,我的线路和从消息到线路的单一连接之间存在循环和双向连接。我不明白为什么线路连接的消息永远不会超过一条。我的事实可能(很可能)有点错误。感谢您的帮助。
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
}
【问题讨论】:
-
另外,我可以添加什么样的事实以使 Message sig 在其formedOfLines 以及原始 Line 中看到 nextLine。我可以为下一行添加一个事实,但我会丢失原来的行。我应该像第一行一样添加另一个 sig 关系吗?
标签: alloy