next up previous contents
Next: Applications to Propositional Up: Implementation in Maple Previous: Theoretical Details

The Implementation

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;



Andre Heck
Sun Apr 23 10:32:10 MDT 1995