我想知道是否有一种方法,事实上,强制签名的属性是空的。我试过这种方式,但似乎不起作用:
sig C {
myattribute: lone Type
}
sig类型{ att1:Int att2:.....等.. }
fact {
all c: C|
(my condition)
<=>
(
no c.myattribute
)
}
至于现在,我们可以考虑以这种方式用抽象签名来定义结构:
abstract sig GeneralType {}
one sig Empty extends GeneralType {}
sig NotEmpty extends GeneralType {...arguments (att1,2....}
答案 0 :(得分:0)
现有代码应该已经正确my condition
。 (wmeyer建议这样做确实是正确的。)
您可以测试约束以确保它的行为符合您的预期:
sig Type { }
sig C {
myattribute: lone Type
}
fact {
all c: C | no c.myattribute
}
run { } for 5
check {
all c: C | no c.myattribute
} for 5