# Is there a function, that simplifies logical statements?

Posted 9 months ago
1768 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 9 months ago
 Simplify can simplify some logical expression, for example Simplify[a && b && a] Simplify[And[Or[a, c], Or[a, d]]] 
Posted 9 months 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 9 months 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 9 months 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 9 months ago
 Maybe try FindEquationalProof.
Posted 9 months 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.