Open hernanponcedeleon opened 3 months ago
Negated sets are not supported. I'm not sure if it is even possible (negated relations surely are not supported). You have to approximate negations like this:
let Marked = ...
assume Plain & Marked <= 0 // Plain and Marked are mutually exclusive
While this will guarantee disjoint Plain/Marked sets, it allows for events that are neither Plain nor Marked.
The second is probably due to let WRF-ppo = po;[Rel & F];po;[W & Plain] | [Marked];(ctrl | addr);[W & Plain]
.
Currently, the tool assumes all relations starting with a capital letter are unary and otherwise binary.
Can you try renaming the relation to wrf-ppo
?
Can you try renaming the relation to
wrf-ppo
?
This worked
Negated sets are not supported. I'm not sure if it is even possible (negated relations surely are not supported).
Assuming sets are static, this should not be an issue right? Once could statically rewrite the nagation
There is no notion of "static" in this tool. How would you rewrite the negation? I can only think of a rather complex way to do rewriting, where you introduce a "universe" set like this:
let U = Marked | Plain
assume Marked & Plain <= 0
And restrict every base relation to be in the universe:
let rf = [U];rf;[U]
let co = [U];co;[U]
...
If you want to split the universe by even more criteria (e.g. into
EDIT: It's not so ugly, see below.R/W/F
), it gets really ugly.
@jangreen Isn't the above a complete technique to handle arbitrary coverings of the universe? More precisely, suppose you want to cover (not necessarily disjointly) the universe U
in various ways e.g., U = R | W | F
and U = Marked | Plain
then you can do the following rewriting
let U1 = R | W | F
let U2 = Marked | Plain
// For all base relations b
let b = [U2];[U1];b;[U1];[U2] // or equivalently [U1 & U2];b;[U1 & U2]
If desired, you can make the coverings disjoint using assumptions:
// U1
assume R & (W | F) <= 0
assume W & F <= 0
// U2
assume Marked & Plain <= 0
In particular, this allows you to define negations of arbitrary sets. IIRC, emptiness assumptions are complete, so this would even give you complete handling of set negations, no? I find this quite surprising (if it is true) because it would imply that either negations of domain/range-projections of binary relations can also be handled completely or that such projections are not complete to begin with (even without negation).
I think it is correct that you can express negations in terms of a universe U
, as you have done. However, it is not possible to express assumptions like Top = R | W | F
, because that would require that derived relations can occur on the rhs of assumptions.
Would you ever need TOP if you relativize everything to a universe though?
The following cat file
shows two problems