The infix operators ``logic or" (), ``logic and" (),
and ``implies" () are denoted,
respectively, as * &or*, * &and* and * &implies*. The prefix
operator ``negation" () is denoted as * neg*.

Maple is ``case sensitive", so we identify the upper case
and lower case that are going to be used as names of propositions.

*
P:=p;
Q:=q;
.....
*

The image of the infix operators and is obtained the following way

*
`&or`:=proc(alfa,beta)
convert(expand(alfa+beta+alfa*beta),mod2);
end;
*

*
`&and`:=proc(alfa,beta)
convert(expand(alfa*beta),mod2);
end;
*

The image of the prefix operator is obtained as follows

*
neg:=proc(alfa)
convert(expand(1+alfa),mod2);
end;
*

And the image of "implies" (infix operator) is implemented as follows

*
`&implies`:=proc(alfa,beta)
convert(expand(1+alfa*(1+beta)),mod2);
end;
*

The element that generates the ideal (respectively the filter) generated by the elements in the list S can be calculated using the following procedures

*
baseideal:=proc(S : list)
local i,gen;
gen := 0;
for i to nops(S) do
gen := convert(expand(gen &or op(i,S)),mod2) od;
gen;
end;
*

*
basefilter:=proc(S : list)
local i,gen;
gen := 1;
for i to nops(S) do
gen := convert(expand(gen &and op(i,S)),mod2) od;
gen;
end;
*

Sun Apr 23 10:32:10 MDT 1995