如何表达有效性?

时间:2017-08-23 21:24:05

标签: alloy

我正在创建iCalendar数据格式的Alloy模型。

iCalendar文件包含属性。这些属性之间存在很多相关性。我想看看在删除属性时是否有任何中断(即,当属性被限制为零次出现时)。

我想编写一个断言并让Alloy Analyzer搜索反例,但我正在努力编写断言。我希望断言能说出这样的话:

  

如果删除了属性X(即,属性X被约束为零   发生),没有任何实例因无效而无效   删除X。

在伪代码中,我想要这个:

assert NoProblemFilteringX {
    (no prop: X | prop in iCalendar.properties) => all instances are still valid
}

请问您在制定所需的断言方面提供一些指导吗?

1 个答案:

答案 0 :(得分:2)

建议:

  1. 将参数检查写入谓词中,作为参数a 一组属性。如果在参数中给出的属性中满足相关性,则谓词保持不变。

  2. 重写确保这些代码的事实,以便使用所有iCalendar属性的集合作为参数调用此谓词。

  3. 在断言中调用此谓词,而此时将iCalendar.properties - X作为参数