theorem
for
x,
y,
c being
set st
x <> [<*y,c*>,'&'] &
y <> [<*c,x*>,'&'] &
c <> [<*x,y*>,'&'] &
c <> [<*x,y*>,'xor'] holds
for
s being
State of
(BitAdderWithOverflowCirc (x,y,c)) for
a1,
a2,
a3 being
Element of
BOOLEAN st
a1 = s . x &
a2 = s . y &
a3 = s . c holds
(
(Following (s,2)) . (BitAdderOutput (x,y,c)) = (a1 'xor' a2) 'xor' a3 &
(Following (s,2)) . (MajorityOutput (x,y,c)) = ((a1 '&' a2) 'or' (a2 '&' a3)) 'or' (a3 '&' a1) )