我正在尝试编写一个断言语句,大意是一旦为任何学生输入了一个分数,那么该学生总是对该课程有一个分数(尽管分数可能会改变)。我已经知道如何检查学生是否有分数,但是如果学生没有任何分数,我不知道该怎么做。另外,我怎样才能为这个断言语句写一个检查语句?
sig Student, Tutor, Mark {}
sig Course {
reg : set Student,
alloc : Student -> Tutor,
result : Student -> Mark
}
这是我试过的
assert chekmark
{all c:Course | let c' = CO/next[c] |
some Student.(c.Result) => some Student.(c.Result)}
check checkmark for 3
但不知何故,它说:这个表达式没有经过类型检查。我是对还是错,如果我是对的,我该如何解决?