Similar questions have been asked, but this is not a duplicate.
I'm looking for a proof itself, not a description of methods.
Related:
- How do we prove that something is unprovable?
- is possible to make a concrete boundary between provable problems and unprovable problems in a certain axiomatic system
- Using a proof by contradiction with unprovable statement
The Most Trivially Unprovable Statement
(Or at least the most trivial one I could think of)
Given/Assuming
- The axioms of propositional logic are consistent
P
is true
Goal: Prove Q
is true
((Prove that the goal is unprovable under the assumptions))
Not Theory: The Practical / Algorithmic Side
I've written a logic solver program that uses term-rewriting.
While it prefers simplification, when stuck it can use tautologies to expand statements like P
into not(not(P))
or not(not(not(not(P))))
and it can generate Q or not(Q)
from nothing. However, given P prove Q
would cause it to expand forever (given infinite memory).
Yet, while it spends infinite time, we personally waste almost 0 time thinking about the same task because we instantly recognize given P prove Q
is unprovable.
The precursor to my real question is: How can we algorithmically detect/prove this kind of unprovablility?
Existing Answers
The TLDR from other Q&A's is:
- Add an assumption that makes the goal true
- Restart and add an assumption that makes the goal false
- Show that neither case would contradict the axioms/givens
The Problem/Question with Those
Step #1 and #2 are trivial in code, my problem and real-question is precisely about step #3 (prove consistency). I do not know how, and actually because of Godël, feel like it is impossible to complete step 3. Even for a trivially true case like show "given P, prove Q" is unprovable
.
So please, if someone can show a formal proof for the trivial example above, I think I will be able to apply it generically.
AFTER a proof is shown (or a claim that there is no proof) I would be happy to have discussions of meta-systems, soundness, consistency, etc. But I need to see the concrete first, then I will be able to see the patterns and understand the theory
Clarifications
I do want to follow the human method (e.g. knowing that Q
is not a member of the infinite set of all possible substitutions of P
). And I'm completely find with using meta systems to get there, even if the meta systems themselves are not guaranteed to ever reach a stopping point.