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
Pis 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.
Thanks @Bram28 and @Mauro ALLEGRANZA, your comments of meta logic and tautologies was just enough for the relationship between satisfiability and step #3 to click together.
Please correct me if any of this is wrong (particularly in the "term rewriting" part of the algorithm at the bottom)
Proof
Show that
Given P, prove Qis unprovableStep 1, Meta System
Create a meta system, by treating the proof itself as an expression.
Expression: $P \implies Q$
More generically
[...givens], ProvegoalBecomes
Step 2, Burden of proof
goalis proved by[...givens]¬goalis proved by[...givens]goalis unprovable given only[...givens]Step 3, Truth table
Any method that resolves the burden of truth works fine, and the most easy for this example is the truth table.
Step 4, Conclusion
Since
P -> Qis contingent, provingQwhile given onlyPis therefore impossible.Algorithm
For covering more advanced cases, I wrote out this algorithm.