paradoxes and deductive theorem again

btanksley@hifn.com btanksley@hifn.com
Thu, 9 Sep 1999 21:24:30 -0700


> From: iepos@tunes.org [mailto:iepos@tunes.org]
> Subject: paradoxes and deductive theorem again

> Greetings TUNESters...

> I'm bringing up the deductive theorem (and paradoxes) once 
> again because
> the issue still seems unresolved to me. It is clear that in 

> Anyhow, it was suggested that the problem be solved by restricting
> the axioms to cases in which it is known "p", "q", and "r" are 
> "propositions". This seems reasonable, but it is not clear to me
> how one can judge if something is a "proposition". Can someone
> give an intuitive way to judge?

There's actually a formal definition, but an intuitive one is best in this
case.

> I'm afraid somebody is going to answer, "Well, that's easy. It's a 
> proposition iff its not self-referential; after all, all the 
> paradoxes 
> come from self-referential statements, right?", but I don't think that
> is satisfactory.

No -- the standard definition of a proposition is that it may be either true
or false (but not both), and its value is constant.

For example, the statement "x is mortal" is not a proposition, because
although its value is true or false, it's not constant.

Amusingly enough, "Will you marry me?" fails to be a proposition.  :)

> For consider this dialogue:
> Socrates: What Plato is about to say is not true.
> Plato: Socrates has spoken truely.

Both statements cleverly fail to be propositions by leaving terms undefined.
Imagine that you're a compiler -- you have to determine whether everything
you reach is constant and either true or false.  At the time you reach
Socrates' statement, you can't know what Plato is about to say, so you've
got a forward reference.

> This is sort of a drawn-out liar's paradox, but it is significant
> in that it apparently does not involve a self-referential statement.
> Someone analyzing the situation may argue this way. Socrates' 
> statement
> isn't self-referential, so we can use the deductive theorem on it.
> So we "suppose" that Socrates' statement is true. Under this
> assumption, this means that Plato's statement (that Socrate's 
> statement
> was true) is not true; this is a contradiction, so our assumption
> must not have been true. So, Socrates is not telling the truth.
> So, Plato is not not telling the truth, and thus Socrates is not not
> telling the truth (contradictory with what we previously proved,
> that Socrates is not telling the truth). So, we proved a 
> contradiction;

In fact, you proved that both statements cannot be propositions, because if
they were, they would both be simultaneously true and false -- and a
proposition may only have one value.

> Another question: if the deductive theorem is restricted to some sort
> of proposition-hood, is it necessary that the assumption _and_ the
> hypothetically proven thing both be propositions, or is it 
> only necessary 
> for the assumption. I think this may depend on the way 
> "proposition-hood"
> is formulated, but I'm guessing that only the assumption will need
> the restriction.

No, both need to be propositions, according to formal logic.

> So, what is in common among the paradoxes, if not self-reference?
> Well, Socrates and Plato's statements reference each other; this
> seems to suggest that mutual reference is as bad as self-reference.
> A solution that suggests itself is some sort of odd "type system"
> whereby every considered object (including statements) is assigned
> a "level" (maybe a natural number); the level assigned does 
> not matter 
> except it must be greater than or equal to the level of all 
> the objects it 
> is constructed from (defined in terms of); this would rule out mutual 
> reference since two levels could not both be greater than each other.
> However, we don't really want to rule out mutual reference entirely
> (as other odd theories based on this kind of type system have);
> we are only considering restrictions for the deductive theorem. So,
> perhaps we would only require the assignment of a level on an object
> as a condition for use as an assumption in the deductive theorem.

You're considering ruling out forward reference.  As you note, it's possible
to make valid forward references merely by re-arranging text.  A check for
single-valued constantcy is sufficient instead.

> This solution does not really seem like a very good one to me. In
> particular, it seems to require a logic system on top of the logic
> system to determine if assignment of a level is possible. Also,
> what should happen in the case that a referenced entity has 
> no available
> definition in the system (it is taken as a primitive); should it be
> assumed that the entity is not "constructed" from one of the objects
> already introduced (which would yield a mutual reference)? I don't
> think so (this would probably allow the restriction on the deductive
> theorem to be worked around entirely).

Anything which is NOT defined is not possible to use in a proposition,
because its logical value is also not defined (and thus not true or false).

> Oh, and by the way, that computing system thing I was working on
> earlier is still coming, at least in my head. I started coding in
> C and almost went insane and have started working in Java (for lack
> of anything better) since I don't particularly care about speed.

Python is far better than Java for slapdash coding.  Once you get something
solid, you can either move parts into Java using JPython or into C using
CPython.

> Still I haven't decided how the system will handle 
> "conditional commands"
> and conjunctions of commands ("do this and this, I don't care what
> order") and disjunctions of commands ("do this or this, I'm 

[massive snippage]

You may (i.e. WILL) want to look at the Evolving Algebras/Abstract State
Machines home page, at http://www.eecs.umich.edu/gasm/.  Insanely good
stuff.

Remember how propositions can only have one value at a time?  EAs formalize
a way to allow propositions to change over time, the way they do in real
life, so that their value can change.  Furthermore, they do so in a very
simple language which looks like computer programming.

There are interpreters for it, and even GUI design tools.

> well, i think i've babbled enough.

> - iepos

-Billy