我在合金网站上读到签名定义了一个集合。鉴于此定义,我试图理解以下合金代码:
enum dooroptype { unlocked, locked, opened}
enum enginetype {on,off}
enum motortype { ismoving, still}
enum key_location { in_car, faralone}
abstract sig state{
inside,far, near : set Person,
car_action : motortype,
engine : enginetype,
key_position : (Person + key_location),
door : dooroptype
}
如果签名实际上定义了一个集合,那么为什么我们在签名定义中有这么多参数,因为集合是一元关系?如果我错了,如何解释这个定义。