违反 alloy 中的事实
Violate fact in alloy
我正在创建 bell lapadula,这是我的代码。
abstract sig classificaion{}
one sig classified extends classification{}
one sig unclassified extends classification{}
sig user{ level: one classification,
r,w: set object}
sig object{ sec: one classification}
fact policy1{no((classified.~sec).~r & unclassidied.~level)}
fact policy2{no((unclassified.~sec).~w & classifed.~level)}
我想测试策略 1。所以我在我的代码中添加了这个来检查它是否会违反 policy1。但我一直在“级别:”
中收到错误
one sig usera extends user{}{
level: one classified,
r: set objecta
}
one sig objecta extends object{}{
sec: one unclassified
}
你可能想写:
one sig usera extends user{}{
level= classified
r=objecta
}
one sig objecta extends object{}{
sec= unclassified
}
请注意,签名事实包含公式(由 true 或 false 计算的表达式),需要对对象的任何实例都适用。
从这个意义上说,写level = classified 意味着每个usera atom(必然只有一个)的level是分类的。
我正在创建 bell lapadula,这是我的代码。
abstract sig classificaion{}
one sig classified extends classification{}
one sig unclassified extends classification{}
sig user{ level: one classification,
r,w: set object}
sig object{ sec: one classification}
fact policy1{no((classified.~sec).~r & unclassidied.~level)}
fact policy2{no((unclassified.~sec).~w & classifed.~level)}
我想测试策略 1。所以我在我的代码中添加了这个来检查它是否会违反 policy1。但我一直在“级别:”
中收到错误one sig usera extends user{}{
level: one classified,
r: set objecta
}
one sig objecta extends object{}{
sec: one unclassified
}
你可能想写:
one sig usera extends user{}{
level= classified
r=objecta
}
one sig objecta extends object{}{
sec= unclassified
}
请注意,签名事实包含公式(由 true 或 false 计算的表达式),需要对对象的任何实例都适用。
从这个意义上说,写level = classified 意味着每个usera atom(必然只有一个)的level是分类的。