[Haskell-cafe] Clarification on proof section of HS: The Craft of
FP
Cale Gibbard
cgibbard at gmail.com
Mon May 2 12:34:22 EDT 2005
On 5/2/05, robert dockins <robdockins at fastmail.fm> wrote:
> > Well, yes, but I'd argue that ordinary (transfinite) mathematical
> > induction will work just fine here. It's just that the set we're doing
> > mathematical induction over is one larger (in the ordinal sense) than
> > usual. Let S = N union {w}, where N is the usual set of naturals and w
> > is an additional new element. Adopt the usual well-ordering <= on N,
> > and extend it to a new well-ordering by defining x <= w for every x.
> >
> > Assign finite completely defined lists their usual lengths, and every
> > _|_ terminated or infinite list, length w.
>
> So every infinite object has a special length denoted "w". I assume we
> wish to make the following statements about "w"
>
> w = w
> ~(w < w)
>
> Without which "=" and "<" fail to have their intended meaning.
>
> > Suppose that if the statement P(x) holds for every x < y then it holds
> > for y as well. Then P(y) holds by mathematical induction.
>
> Then this induction hypothesis cannot apply to infinite lists. Suppose
> xs is infinite. Then we assign it length "w". Now, (x:xs) is also
> infinite, and has length "w". But, ~(w < w), so we cannot conclude that
> P(x:xs) given P(xs).
>
I didn't claim that this what we need to prove in this case. We need
to prove that P holds on lists of length w given that it holds on
lists of every finite length.
> One simply cannot reason based on the "size" of an infinite object in
> this way. You require a form of structural reasoning, and that means
> coinduction.
>
>
More information about the Haskell-Cafe
mailing list