Download MuPAD from SciFace

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)));

  • taut(lexpr1);

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

  • taut(lexpr2);

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

  • taut(lexpr3);

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

  • taut(lexpr4);

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

  • taut(lexpr5);

 
 
TOP