Propositional logic with itertools | Python

austinleath

February 3rd, 2021 02:37:23 AM

					
from itertools import product V='∀' E='∃' def tt(f,n) : xss=product((0,1),repeat=n) print('function:',f.__name__) for xs in xss : print(*xs,':',int(f(*xs))) print('') # p \/ (q /\ r) = (p \/ q) /\ (p \/ r) def prob1(p,q,r) : x=p or (q and r) y= (p or q) and (p or r) return x==y tt(prob1,3) # p/\(q\/r)=(p/\q)\/(p/\r) def prob2(p,q,r) : x=p and ( q or r ) y=(p and q) or (p and r) return x==y tt(prob2,3) #~(p/\q)=(~p\/~q) def prob3(p,q) : x=not (p and q) y=(not p) or (not q) return x==y tt(prob3,2) #(~(p\/q))=((~p)/\~q) def prob4(p, q): x = not(p or q) y = not p and not q return x == y tt(prob4, 2) #(p/\(p=>q)=>q) def prob5(p,q): x= p and ( not p or q) return not x or q tt(prob5,2) # (p=>q)=((p\/q)=q) def prob6(p,q) : x = (not p or q) y=((p or q) == q) return x==y tt(prob6,2) #((p=>q)=(p\/q))=q def prob7(p,q): if ((not p or q)==(p or q))==q: return 1 tt(prob7,2) #(p=>q)=((p/\q)=p) def prob8(p,q): if (not p or q)==((p and q)==p): return 1 tt(prob8,2) #((p=>q)=(p/\q))=p def prob9(p,q): if ((not p or q)==(p and q))==p: return '1' tt(prob9,2) #(p=>q)/\(q=>r)=>(p=>r) def prob10(p,q,r) : x = not ((not p or q) and (not q or r)) or (not p or r) return x tt(prob10, 3) # (p = q) /\ (q => r) => (p => r) #answer 1 def prob11(p,q,r) : x = not((p is q) and (not q or r)) or (not p or r) return x tt(prob11, 3) #(p=q)/\(q=>r)=>(p=>r) #answer 2 def prob11(p,q,r): x=(p==q) and (not q or r) y=not p or r return not x or y tt(prob11,3) #((p=>q)/\(q=r))=>(p=>r) def prob12(p,q,r): x=(not p or q) and ( q==r ) y=not p or r return not x or y tt(prob12,3) #(p=>q)=>((p/\r)=>(q/\r)) def prob13(p,q,r): x=not p or q y=(not(p and r) or ( q and r)) return not x or y tt(prob13,3) #Question#2---------------------------------------- #(p=>q)=>r=p=>(q=>r) def prob14(p,q,r): x=(not(not p or q) or r) y=(not p or (not q or r)) return x==y tt(prob14,3) def prob15(p, q): x = not(p and q) y = not p and not q return x == y tt(prob15, 2) def prob16(p, q): x = not(p or q) y = not p or not q return x == y tt(prob16, 2) def prob17(p): x = p y = not p return x == y tt(prob17, 1)

Featured Posts