On Jun 22, 2006, at 10:16 AM, Brian Hulley wrote:
minh thu wrote:
2006/6/22, Brian Hulley <[EMAIL PROTECTED]>:
Jerzy Karczmarczuk wrote:
Brian Hulley wrote:
[snip]
y IS NOT a longer list than yq, since co-recursive equations
without
limiting cases, apply only to *infinite* streams. Obviously, the
consumer of such a stream will generate a finite segment only, but
it is his/her/its problem, not that of the producer.
I still don't understand this point, since y = (a*x0 : yq) so surely
by induction on the length of yq, y has 1 more element?
y and yq are infinite...
But how does this change the fact that y still has 1 more element
than yq?
yq is after all, not a circular list.
I don't see why induction can't just be applied infinitely to prove
this.
Induction doesn't apply to co-inductive objects, such as infinite
lists AKA streams.
I particular, the "length" of an infinite list is undefined, much as
the "size" of an infinite set is undefined. The only think you can
discuss, a la Cantor, is cardinality. In both cases, as mentioned by
another poster, it is aleph-null.
<aside>
Every few months a discussion arises about induction and Haskell
datatypes, and I feel compelled to trot out this oft-misunderstood
fact about Haskell: 'data' declarations in Haskell introduce co-
inductive definitions, NOT inductive ones. Induction, in general,
does not apply to ADTs defined in Haskell; this is in contrast to
similar-looking definitions in, eg, ML. This is a common source of
confusion, especially for mathematically-inclined persons new to
Haskell. Does anyone know of a good reference which clearly explains
the difference and its ramifications? I've never been able to find a
paper on the topic that doesn't dive head-first into complicated
category theory (which I usually can't follow) ...
</aside>
Rob Dockins
Speak softly and drive a Sherman tank.
Laugh hard; it's a long way to the bank.
-- TMBG
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe