我正在学习 Alloy 教程,并且刚刚开始这一章。我的问题是本章开头的那句话:
现在我们已经建立了一个模型来确保我们的文件系统的结构正确性......
当我运行到目前为止构建的模型时,我仍然会发现文件系统断开连接,这似乎与这句话相矛盾。
这是Alloy 4.2,几天前从网站下载的构建日期2012-9-25。我做错了什么还是故意的?据我了解,我在模型中看不到任何可以防止这种断开连接的东西。但是我的理解还是有点模糊。
相关模型复制如下:
// File system objects
abstract sig FSObject { }
sig File, Dir extends FSObject { }
// A File System
sig FileSystem {
live: set FSObject,
root: Dir & live,
parent: (live - root) ->one (Dir & live),
contents: Dir -> FSObject
}{
// live objects are reachable from the root
live in root.*contents
// parent is the inverse of contents
parent = ~contents
}
我可以看到live: set FSObject
可能需要连接的线路,但这不是我目前对该线路语义的理解。