我正在 Z 中编写操作模式。此操作 AssignValue 将属性映射到一个或多个值。
一个属性可以链接一个或多个值,一个值可以链接一个或多个属性,形成多对多关系,R ⊆ 属性 × 值。
我不确定如何编写此操作以指示一个属性可以映射到一个或多个值。我这里有两个版本。版本 A 似乎将一个属性映射到一个值。
版本 A:
--AssignValue---
| p? : Property
| v? : Value
-------
|R′ = R ∪ { p? ↦ v? }
-------
在版本 B 中,我在 v? 的声明中添加了一个幂集?表示 v? 是一组值(多个值)。
版本 B:
--AssignValue---
| p? : Property
| v? : P Value
-------
|R′ = R ∪ { p? ↦ v? }
-------
哪个版本是正确的?还是有更好的方法来表示这一点?我是 z 表示法的新手,任何帮助将不胜感激。谢谢!