Bool Module Interface Specification

(0) CHARACTERISTICS

-type specified: bool

-features: deterministic, non-parameterized

-foreign types:

(1) SYNTAX

ACCESS-PROGRAMS

Program Name
Arg#1Arg#2Result Type
ANDbool:Vbool:Vbool
ASSIGNbool:Obool:V 
EQUIVbool:Vbool:Vbool
IMPLIESbool:Vbool:Vbool
NOTbool:V  bool
ORbool:Vbool:Vbool
PREDbool:VO   
SUCCbool:VO   
XORbool:Vbool:Vbool

(2) CANONICAL TRACES

canonical(T) T = _ T = SUCC(*)

AUXILIARY FUNCTIONS

and: <bool> × <bool> <bool>

and(x, y) =

ConditionValue
x = _ y = _ _
x _ y _SUCC(*)

equiv: <bool> × <bool> <bool>

equiv(x, y) =

ConditionValue
x y_
x = y SUCC(*)

not: <bool> <bool>

not(x) = U where U:<bool> [x U]

(3) SEMANTICS

ACCESS-PROGRAMS

Legality(AND(T, U)) = %legal%

AND(T, U) = and(T, U)

Legality(ASSIGN(n, U)) = %legal%

ASSIGN(n , U) = U

Legality(EQUIV(T, U)) = %legal%

EQUIV(T, U) = equiv(T, U)

Legality(IMPLIES(T, U)) = %legal%

IMPLIES(T, U) = not(and(T, not(U)))

Legality(NOT(T)) = %legal%

NOT(T) = not(T)

Legality(OR(T, U)) = %legal%

OR(T, U) = not(and(not(T), not(U)))

Legality(PRED((n, T))) =

ConditionValue
T = _ %fatal%
T _%legal%

PRED((n, T) ) = _

Legality(SUCC((n, T))) =

ConditionValue
T _%fatal%
T = _ %legal%

SUCC((n, T) ) = SUCC(*)

Legality(XOR(T, U)) = %legal%

XOR(T, U) = not(equiv(T, U))