.decl A (n:number)
.decl B (n:number)
.decl S1 (n:number)
.output S1 ()
.decl S2 (n:number)
.output S2 ()
.decl S3 (n:number)
.output S3 ()
.decl S4 (n:number)
.output S4 ()

A(0xF1).
A(0xE2).
A(0x33).

B(0x44).
B(0xF1).
B(0xAB).

S1(x band y) :- A(x), B(y).
S2(x bor y) :- A(x), B(y).
S3(x) :- A(x), B(y), (bnot x) band (bnot y) = bnot (x bor y).
S4(x) :- A(x), bnot bnot x != bnot x.



