2017-04-11 79 views
0

合金教程http://alloy.mit.edu/alloy/tutorials/online/frame-FS-3.html,我们定义在文件系统如下:三元关系,关系的产品和领域,它们本身关系

contents: Dir lone-> FSObject, 
parent: FSObject ->lone Dir 

// A File System 
sig FileSystem { 
    root: Dir, 
    live: set FSObject, 
    contents: Dir lone-> FSObject, 
    parent: FSObject ->lone Dir 
} 

我只是无法理解以下说明:

这些是三元关系,使用关系产品操作r(“ - >”)。把它们看作是本身就是关系的领域。内容关系将每个文件系统映射到从目录到文件系统对象的二进制关系。同样,父级将每个文件系统与文件系统对象关联到目录。

有人可以解释我用不同的例子,换句话说?

回答

0

甲关系中包含具有对于每一列的值的行。它拥有一些谓词(报表模板)由字段参数,使一些真正命题(声明)的行。 - ,其中人X爱(X,Y)行人ý 爱

X  Y 
------------ 
Rick Ilsa 
Victor Ilsa 
Ilsa Rick 
Ilsa Victor 
Louis Louis 

的值是一组特定的成员。我们说这个集合是它的类型。变量的类型是它可以容纳的值的类型。关系值是该集合的一个元素,它是其字段类型的“产品”。

Loves值是一组与XPersonY会员的所有关系中的一员是Person成员。所以Loves和它的值是Person -> Person类型。

所有报价的意思是,列的类型可以是一个关系。

-- the (X, Z) rows where Z is the (A, B) rows where X will fly to A in B 
Itinerary 

剧透警告!

X  Z 
-------------------------- 
Rick A   B 
     ------------------ 
     Paris  Spring 
     Casablanca Summer 
Ilsa A   B 
     ------------------ 
     Paris  Spring 
     Casablanca Fall 
     Lisbon  Fall 
Victor A   B 
     ------------------ 
     Casablanca Fall 
     Lisbon  Fall