# Is there a function, that simplifies logical statements?

Posted 1 year ago
2652 Views
|
6 Replies
|
0 Total Likes
|
 Why does Wolfram|Alpha not return True for following inputs: trueQ[!(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[y,x]]])] Simplify[!(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[y,x]]])] ?The statement is obviously true, since first half before "and" claims that 2 things that satisfy A exist and second half after "and" claims that 2 such things do not exist(order of 2 existence quantifiers is not important), then this contradicting claim is negated. Is it a bug in Wolfram|Alpha, that it does not return true? Is trueQ or Simplify (or some other Wolfram function) supposed to (always) return true, if the argument is true (with every argument)? Would it even be possible to make an algorithm that understands if it's argument is true or not for every argument(with regard to Gödel 2. incompleteness theorem)? Which Wolfram's built-in function is best to determine if such logical statement with quantifiers are consistent or inconsistent?
6 Replies
Sort By:
Posted 1 year ago
 These examples are along the same lines: FullSimplify[ Integrate[f[x], {x, 0, 1}] == Integrate[f[y], {y, 0, 1}]] FullSimplify[Sum[f[n], {n, a, b}] == Sum[f[m], {m, a, b}]] My guess is that a replacement of dummy variables is not among the transformations used by Simplify.
Posted 1 year ago
 Maybe try FindEquationalProof.
Posted 1 year ago
 Is there any function in Wolfram, that is able to understand, that !(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[y,x]]]) is true?
Posted 1 year ago
 !(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[x,y]]]) returns Trueas does TrueQ[!(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[x,y]]])] as does Simplify[!(Exists[x,Exists[y,A[x,y]]] && !Exists[x,Exists[y,A[x,y]]])] ! linkTrueQ linkSimplify link
Posted 1 year ago
 Here is a simpler example: FullSimplify[Equivalent[Exists[x, A[x]], Exists[y, A[y]]]] My guess is that either logical simplification does not handle expression as generic as A[x], or that replacing a dummy variable with another is not among the rules tried in the simplification.This may be vaguely similar: Simplify[f'[x]^2 >= 0, Element[f[x], Reals]] 
Posted 1 year ago
 Simplify can simplify some logical expression, for example Simplify[a && b && a] Simplify[And[Or[a, c], Or[a, d]]]