这两个是否相同:
r: A -> B
r: A set -> set B
也就是说set
是默认的多重性?
如果是,那么我将在Software Abstractions一书中对箭头操作符的定义进行狡辩。这本书在第55页说:
两个关系p和q的箭头乘积(或仅仅乘积)p-> q 通过从p和p中获取元组的每个组合得到的关系 来自q的元组并将它们连接起来。
我将该定义解释为p <&gt;的唯一有效实例.q是具有来自p的元组和来自q的元组的所有可能组合的实例。但那不对(我想)。包含p和q之间映射的任何实例都是有效的。例如,第56页就是这个例子,
Name = {(N0), (N1)}
Addr = {(D0), (D1)}
这本书说这是Name-&gt; Addr
的有效关系{(N0, D0), (N0, D1), (N1, D0), (N1, D1)}
但那不是唯一的有效关系,对吗?例如,这是一个有效的关系:
{(N0, D0), (N1, D1)}
是吗?
答案 0 :(得分:2)
声明r:A-> B表示r是A-> B的子集。表达式A-> B只有一个值,它是A和B的叉积。声明产生r的一组可能值,其中包括您引用的书中给出的示例,以及你问的例子。