Re: [xsl] () eq () vs () = ()

Subject: Re: [xsl] () eq () vs () = ()
From: Wolfgang Laun <wolfgang.laun@xxxxxxxxx>
Date: Mon, 3 Oct 2011 16:15:11 +0200
Just think of the universal quantifier "forall" (every $x in X
satisfies P) as a conjunction over zero or more elements. Its
initialization must be true (as the initial value for a product must
be 1). Therefore, the "forall" for an empty set is true.

The quantifier "exists" (some $x in X satisfies P) is a disjunction
over elements, and its initialization must be false (as the initial
value for a sum must be 0). Hence, the "exists" for an empty set X is
false.

If you negate a "forall" over an empty set you get the "exists" for
the negated proposition (de Morgan's rule), still over the empty set,
which is false.

-W

On 3 October 2011 15:10, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote:
>
> > It's a common misunderstanding about universal quantification. The
> > proposition
> >
> > every S satisfies P
> >
> > is always true when S is empty, regardless of P.
> >
> > For example, the statement "every hotel on St Kilda is fully booked" is
> > true, as is the statement "every hotel on St Kilda has vacancies" (there
are
> > no hotels on St Kilda).
>
> Heh, nice. So:
>
> every hotel on St Kilda is fully booked, yet some hotel on St Kila
> isn't fully booked.
>
> In a potential summary then:
>
> () eq () returns () because... it's a special case where the
> atomisation of () returns () and not the empty string?
>
> () = () returns false because its based on 'some', and there are no
> items to compare, so false is implied.
>
> deep-equal((), ()) returns true because its based on every, which in
> universal quantification is a "vacuous truth" (I googled it :)
>
>
>
> --
> Andrew Welch
> http://andrewjwelch.com

Current Thread