On Wed, Apr 2, 2008 at 6:54 PM, Ralf Hemmecke wrote:
> ...
>  I have the impression, you don't like dependent types.

That is correct. I think they spoil the otherwise very simple
correspondence between domains/operations in Aldor and objects/arrows
in a category. I would like Axiom/Aldor to have a very simple
categorical semantics but dependent types make things considerably
more complex. See for example the references in reply to:

  http://lambda-the-ultimate.org/node/2737#comment-40977

>  Don't you think that dependent types could be useful for modeling
>  sheaves of structures?
>

I am not convinced that dependent types are important for representing
sheaves. For sure I am interested in topos theory (a categorical
generalization of set theory based on sheaves). Ultimately I would
like Axiom (Spad/Aldor) to be support enough categorical constructs to
directly represent topoi. In fact Aldor may already be sufficient for
this task and Spad is very close. My belief is that doing this will
make it possible to represent sheaves without dependent types - but
this remains to be demonstrated.

>  Or suppose you have an index set I and a family of sets (U_i)_{i \in I}.
>  Let U be the (disjoint) Union of all the U_i and define a function
>
>  f: I -> U
>
>  which has the property that f(i) \in U_i.
>

This construction can be given a more categorical description: You are
saying that f is a segment of the projection of a fiber bundle onto
its base space

  F: U -> I

where F f = id(I). Abstracting from it's topological foundations,
viewing the mapping F "in reverse" as a bundle of fibers is a
fundamental idea in topos theory.

>  Simply writing I->U tells you nothing about this special property.
>  Dependent types do.
>

I agree that dependent types provide more information about a function
than is contained in the signatures written without dependencies. The
question is: What information do we expect to be available in the
types versus that which is available by direct knowledge of the
construction? If the type system is too complicated, then using it
improperly might also become a source of error. On the other hand, if
we have some higher-order operations that construct f as a segment of
F then we know it has the properties you specified by the nature and
definition of this operation.

Saul Youssef referred to this kind of approach to "correctness by
design" in his paper on implementing category theory in Aldor:

http://axiom-portal.newsynthesis.org/refs/axiombib/webpublishedreference200501181190226284

"We suggest that an axiom that: 'Domain is a category with product,
coproduct, initial, final and exponential object' captures what one
needs to assume to provide a convenient basis for rigorous arguments
about the correctness of Aldor applications."

Refs:

See especially Slice Categories, Section 6 Page 9, ibid.

Also: http://physics.bu.edu/~youssef/homepage/talks/categories/23.html

More generally: http://en.wikipedia.org/wiki/Bundle_(mathematics)

I think "correctness by design", i.e. by construction, is
fundamentally more "algebraic" then logical "proof of correctness" of
a program. Notice however that Saul Youssef does make use of dependent
types in his Aldor programming. Perhaps if Aldor/Spad took some of
these constructions as language primitives so that the representation
of category theory is more complete, then the need for dependent types
would disappear.

Does this all make sense to you?

Regards,
Bill Page.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to