It is very difficult to debate the truth without having definitions for the words in "I think therefore I am."
There are many thought experiments you can come up with to bring the validity into doubt, try it. Descartes' Demon is very clever, more clever even than Descartes.
But I will try an approach that will not rely on whatever definitions are being used.
We are discussing Absolute Certainty concerning that truth of the statement "I exist." Cogito Ergo Sum is supposedly a complete validation of the statement "I exist." There is no uncertainty whatsoever in the argument or the conclusion.
I am trying to refute this.
Sorry it is a bit long, but enjoy. :)
We are in a dark alley (why? None of your business, stop asking questions!) and someone gives us a list of instructions.
They tell us "It is an algorithm that will verify any statement that is 100% certainly True." We run home to try it out.
It is called the Certainty of Truth Validator (or make up your own name) and we abbreviate it as CTV.
We are told that given a proposition p, when we run CTV on p, denoted CTV(p), either CTV will halt and say 100%T, or it will halt and it will say <100%T (not absolutely certainly true), or it will never halt.
We are guaranteed that if p is 100%T then CTV(p) will halt and we will get the response 100%T.
So, there I am with the CTV. I wonder if CTV is itself reliable 100%. I want to make sure that CTV will never say 100%T when the input proposition is not 100%T. So I try the following:
CTV( It is not the case that, if CTV(p) outputs 100%T then p is not 100%T )
I get 100%T. Not surprising, look who I am asking.
I then grow a little concerned. I am the one who just ran CTV! Am I reliable? I will ask CTV.
CTV( For all propositions p, I run CTV(p) without error )
I run the algorithm, holding my breath. Still holding...
Maybe it stops and says 100%T (phew) or maybe it does not (uh-oh.)
But, even if it says 100%T, how do I know I ran THAT input correctly?
For brevity, let A0 := "For all propositions p, I run CTV(p) without error" I just ran CTV(A0).
So, I run
CTV (I run CTV(A0) without error).
Again I hold my breath... Even if I get 100%T, did I run that correctly?
Recursively define the following propositions:
A(n+1) = "I run CTV(An) wihtout error" {for n = 0, 1, 2 ...}
I just ran CTV ( A1 ).
But, still uncertain of MY OWN ABILITY to run CTV without error, I continue.
CTV ( A2 ), CTV ( A3 ), ...
Regardles of the results (I am being nice to myself saying that CTV says I run it without error in these cases) I will forever be UNCERTAIN OF MY OWN ABILITY TO RUN CTV.
To be fair, I was asking alot, for the initial satement said "I run CTV(p) without error on ALL propositions p".
So, let us try something more specific.
I run
CTV (I exist).
Now, to cover whatever arguments people claim show "I exist" is 100%T, I will allow the instructions for CTV to contain that list for just this situation. (i.e. see CTV Manual pg. 4,329 line 78 "When the input is "I exist" follow these...)
OK. So I run CTV (I exist) [Define B0 := "I exist" ]
I get back 100%T (otherwise...omg)
But, did I run it correctly! So I run CTV (I run CTV (I exist) without error). I get 100%T. Goody.
But I still might have made a mistake, I am not ABSOLUTLEY CERTAIN.
Define B(n+1) = "I run CTV(Bn) without error" {for n = 0, 1, 2 ...} I ran CTV(B1). So now I run
CTV(B2), CTV(B3), ...
always wondering whether I made a mistake somewhere; always just a little uncertain; never absolutely certain that the statement "I exist" is true.