私は単純な Alloy コードを書いていますが、AT MOST 1 つの A が pD に関連付けられているとどのように言うことができるか理解できません (したがって、AT MOST は 1 または 0 になります)。だから私は以下のコードを書きましたが、アサーションはDのないP1のインスタンスで反例を提示しません.私が反例を見ることができるpDのAT MOST 1つのインスタンスを持つという点で私の事実を定義する方法を教えてください. p はその D に接続されていません。
abstract sig A {}
sig A1,A2,A3 extends A{}
abstract sig P {}
sig P1 extends P {D: A}
fact
{
all p: P1 | lone (p.D & A)
}
assert asr
{no p: P1 | no (p.D & A)}
check asr for 5