如何表达有效性?
How to express validity?
我正在创建 iCalendar 数据格式的 Alloy 模型。
一个 iCalendar 文件包含属性。属性之间有很多相互依赖关系。我想看看当 属性 被删除时是否有任何中断(即,当 属性 被限制为零出现时)。
我想编写断言并让 Alloy 分析器搜索反例,但我正在为如何编写断言而苦恼。我希望断言像这样说:
If property X is removed (i.e., property X is constrained to zero
occurrences), there are no instances that are invalid as a result of
removing X.
在伪代码中,我想要这个:
assert NoProblemFilteringX {
(no prop: X | prop in iCalendar.properties) => all instances are still valid
}
你能提供一些关于制定所需断言的指导吗?
建议:
将你的依赖性检查写在一个以参数a为参数的谓词中
属性集。如果在参数中给出的属性中满足相互依赖关系,则谓词成立。
重写您的事实以确保这些相互依赖性,以便使用所有 iCalendar 属性集作为参数调用此谓词。
在断言中调用此谓词,同时将 iCalendar.properties - X
作为参数
我正在创建 iCalendar 数据格式的 Alloy 模型。
一个 iCalendar 文件包含属性。属性之间有很多相互依赖关系。我想看看当 属性 被删除时是否有任何中断(即,当 属性 被限制为零出现时)。
我想编写断言并让 Alloy 分析器搜索反例,但我正在为如何编写断言而苦恼。我希望断言像这样说:
If property X is removed (i.e., property X is constrained to zero occurrences), there are no instances that are invalid as a result of removing X.
在伪代码中,我想要这个:
assert NoProblemFilteringX {
(no prop: X | prop in iCalendar.properties) => all instances are still valid
}
你能提供一些关于制定所需断言的指导吗?
建议:
将你的依赖性检查写在一个以参数a为参数的谓词中 属性集。如果在参数中给出的属性中满足相互依赖关系,则谓词成立。
重写您的事实以确保这些相互依赖性,以便使用所有 iCalendar 属性集作为参数调用此谓词。
在断言中调用此谓词,同时将
iCalendar.properties - X
作为参数