Question about None

Aaron Brady castironpi at gmail.com
Mon Jun 15 12:10:56 EDT 2009


On Jun 14, 9:50 pm, Steven D'Aprano
<ste... at REMOVE.THIS.cybersource.com.au> wrote:
> On Sun, 14 Jun 2009 19:14:10 -0400, Terry Reedy wrote:
> > Steven D'Aprano wrote:
>
> >> So-called "vacuous truth". It's often useful to have all([]) return
> >> true, but it's not *always* useful -- there are reasonable cases where
> >> the opposite behaviour would be useful:
> [...]
> > It seems to me that the absurd conclusion implied by the theorem
> > invalidates the theorem rather than supporting your point.
>
> I wouldn't go so far as to say the vacuous truth theorem ("empty
> statements are true") is invalidated. The Wikipedia article discusses
> various reasons why it's more correct (or at least more useful) to treat
> vacuous statements as true:
>
> http://en.wikipedia.org/wiki/Vacuous_truth
>
> But it's not without difficulties -- however those difficulties are
> smaller than those if you take vacuous statements as false in general.
snip

Those difficulties are pretty gaping.

I would start by dividing the natural language 'use cases' of 'if'
statements into imperative and declarative.

Declarative:

If it's raining, it's cloudy.

In this case, the assertion is meant to convey a general, non-
concrete, observation trend across space and time.  Its content is a
claim of 100% correlation between two statuses of the real world.

Imperative:

If you're out of bread, go buy some.

Here, the speaker is in a position of authority over the audience, who
will be following his/er commands, and acting under the speaker's
authority.  The speaker is meaning to convey conditional instructions,
for a possible circumstance.  There is no component of observation or
assertion.

We see this distinction in programming too.  Is the user merely
asserting a relation, or defining a procedure?

Implies( Raining( x ), Cloudy( x ) )

or

if OutOfBread( x ):
    BuyBread( )

The 'if' statement is counterfactual in its native environment.  As
such, natural speakers never use it in vacuous cases, and it's not
naturally defined.

In a mathematical (ideal) environment, its semantics are artificially
constructed like any other math predicate, and proofs involving it
will define its vacuous case, or fail.



More information about the Python-list mailing list