REDUCE 3.6, 15-Jul-95, patched to 6 Mar 96 ...
% Test series for the boolean package.
boolean true;
1
boolean false;
0
boolean (true and false);
0
boolean (true or false);
1
boolean (x and true);
x
boolean (x and false);
0
boolean (x or true);
1
boolean (x or false);
x
boolean (not(x and y));
boolean(not(x) \/ not(y))
boolean (not(x or y));
boolean(not(x)/\not(y))
boolean (x or y or(x and y));
boolean(x \/ y)
boolean (x and y and (x or y));
boolean(x/\y)
boolean (x or (not x));
1
boolean (x and (not x));
0
boolean (x and y or not x);
boolean(not(x) \/ y)
boolean (a and b implies c and d);
boolean(not(a) \/ not(b) \/ c/\d)
boolean (a and b implies c and d, and);
boolean((not(a) \/ not(b) \/ c)/\(not(a) \/ not(b) \/ d))
boolean (a or b implies c or d);
boolean(not(a)/\not(b) \/ c \/ d)
boolean (a or b implies c or d, and,full);
boolean((a \/ not(b) \/ c \/ d)/\(not(a) \/ b \/ c \/ d)
/\(not(a) \/ not(b) \/ c \/ d))
operator >;
fm:=boolean(x>v or not (u>v));
fm := boolean(not(u>v) \/ x>v)
v:=10;
v := 10
testbool fm;
***** u - 10 invalid as number
***** x - 10 invalid as number
boolean(not(u>10) \/ x>10)
x:=3;
x := 3
testbool fm;
***** u - 10 invalid as number
boolean(not(u>10))
clear x;
x:=17;
x := 17
testbool fm;
***** u - 10 invalid as number
1
clear v,x;
end;
(TIME: boolean 300 300)