MuPAD
Pro Computing Essentials - Examples
Example 11.2 - Polish Notation in Logic
Here is a nice example showing how Polish notation for
logical expressions can be implemented in MuPAD.
- C := (p,q) -> (not p) or q;

- unprotect(E):
E := (p,q) -> C(p,q) and C(q,p);

- N := p -> not p:
K := (p,q) -> p and q:
A := (p,q) -> p or q:
- taut := proc(lexpr)
local p, q, r, BV, bval;
begin
BV := {TRUE, FALSE};
bval:=TRUE;
for p in BV do
for q in BV do
for r in BV do
bval:=bval and bool(lexpr(p,q,r))
end;
end;
end;
return(bval);
end:
- lexpr1 := (p,q)-> E(N(A(p,q)),K(N(q),N(p)));


- lexpr2 := (p,q)-> E(N(K(p,q)),A(N(q),N(p)));


- lexpr3 := (p,q)-> E(K(p,A(p,q)),p);


- lexpr4 := (p,q)-> E(A(p,K(p,q)),p);


- lexpr5 := (p,q)-> E(A(p,K(p,q)),q);


|