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