0

Alloy の機能の同等性をどのように比較しますか? 何かのようなもの:

--[(All x)(Exists y)[R(x,y)] 
-- and (All x)(All y)[R(x,y) -> R(y,x)]] 
-- = 
-- (All x)[R(x,x)] and 

assert checkEquality{
    ( all m: Model, x:m.A| some y:m.A | (y in x.(m.R)) ) and
    ( all m: Model, x:m.A, y:m.A | (y in x.(m.R) -> x in y.(m.R)) ) =
    ( all m: Model, x:m.A | (x in x.(m.R))
}
4

1 に答える 1

0

初級編はこちら。'(All x)(All y)[R(x,y) -> R(y,x)]]' の部分から推測すると、おそらくもっと特別なことを考えたことがあるでしょう。その場合は、質問をさらに具体的に記入してください。

sig Value {}

pred p1 [x, y: Value] {
    // ...
}

pred p2 [x, y: Value] {
    // ...    
}

assert equ_pred {
    all x, y: Value | p1 [x, y] <=> p2 [x, y]
}

check equ_pred
于 2016-06-13T16:17:43.323 に答える