鉴于以下定义:
sig Name,Addr{}
sig Book{ addr : Name -> some Addr}
Let Name = { (J),(t), (b)}
Addr = {(1), (2)}
Book = {(bb0)}
我很好奇在关系addr : Name -> some Addr
中,第二列中Name的多重性是什么。而且,以下是可能的
addr = {(bbo, j , 1), (bb0, j, 2)}
我试图了解j是否可以在第二列中出现多次
答案 0 :(得分:1)
简短的回答是肯定的,但我只是通过尝试来解决,你必须正确定义你的模型:
abstract sig Name,Addr{}
abstract sig Book{ addr : Name -> some Addr}
one sig J,t,b extends Name {}
one sig a1,a2 extends Addr {}
one sig bb0 extends Book {}
run { #addr > 3 } for 4 int
执行它并使用评估器评估addr
您将看到它包含3个以上的元素,其中两个元素具有相同的Name
原子。