F-ALGEBRA
In mathematics, specifically in category theory, an '-algebra' for an endofunctor
:
is an object of together with a -morphism
:.
In this sense F-algebras are dual to F-coalgebras.
A homomorphism from -algebra to -algebra is a morphism
:
in such that
:.
Thus the -algebras constitute a category.
Consider the functor that sends a set to . Here, 'Set' denotes the category of sets, denotes the usual coproduct given by disjoint union, and 1 is a terminal object (i.e. any singleton set). Then the set of natural numbers together with the function , which is the coproduct of the functions (whose image is ''0'') and (which sends an integer ''n'' to ''n+1''), is an -algebra.
Main articles: Initial algebra
If the category of -algebras for a given endofunctor ''F'' has an initial object, it is called an 'initial algebra'. The algebra in the above example is an initial algebra. Various finite data structures used in programming, such as lists and trees, can be obtained as initial algebras of specific endofunctors.
Types defined by using least fixed point construct with functor F can be regarded as an initial F-algebra, provided that parametricity holds for the type.Philip Wadler: Recursive types for free! University of Glasgow, July 1998. Draft.
See also Universal algebra.
In a dual way, similar relationship exists between notons of greatest fixed point and terminal F-coalgebra, these can be used for allowing potentially infinite objects while maintaining strong normalization property. In the strongly normalizing Charity programming language (i.e. each program terminates in it), coinductive data types can be used achieving surprising results, e.g. defining lookup constructs to implement such “strong†functions like the Ackermann function.[1]
★ Algebraic data type
★ Catamorphism
1. Robin Cockett: Charitable Thoughts ([ftp://ftp.cpsc.ucalgary.ca/pub/projects/charity/literature/papers_and_reports/charitable.ps ps] and [ftp://ftp.cpsc.ucalgary.ca/pub/projects/charity/literature/papers_and_reports/charitable.ps.gz ps.gz])
★ Categorical programming with inductive and coinductive types by Varmo Vene
★ Philip Wadler: Recursive types for free! University of Glasgow, July 1998. Draft.
★ Algebra and coalgebra from CLiki
:
is an object of together with a -morphism
:.
In this sense F-algebras are dual to F-coalgebras.
A homomorphism from -algebra to -algebra is a morphism
:
in such that
:.
Thus the -algebras constitute a category.
| Contents |
| Example |
| Initial F-algebra |
| Terminal F-coalgebra |
| See also |
| Notes |
| External links |
Example
Consider the functor that sends a set to . Here, 'Set' denotes the category of sets, denotes the usual coproduct given by disjoint union, and 1 is a terminal object (i.e. any singleton set). Then the set of natural numbers together with the function , which is the coproduct of the functions (whose image is ''0'') and (which sends an integer ''n'' to ''n+1''), is an -algebra.
Initial F-algebra
Main articles: Initial algebra
If the category of -algebras for a given endofunctor ''F'' has an initial object, it is called an 'initial algebra'. The algebra in the above example is an initial algebra. Various finite data structures used in programming, such as lists and trees, can be obtained as initial algebras of specific endofunctors.
Types defined by using least fixed point construct with functor F can be regarded as an initial F-algebra, provided that parametricity holds for the type.Philip Wadler: Recursive types for free! University of Glasgow, July 1998. Draft.
See also Universal algebra.
Terminal F-coalgebra
In a dual way, similar relationship exists between notons of greatest fixed point and terminal F-coalgebra, these can be used for allowing potentially infinite objects while maintaining strong normalization property. In the strongly normalizing Charity programming language (i.e. each program terminates in it), coinductive data types can be used achieving surprising results, e.g. defining lookup constructs to implement such “strong†functions like the Ackermann function.[1]
See also
★ Algebraic data type
★ Catamorphism
Notes
1. Robin Cockett: Charitable Thoughts ([ftp://ftp.cpsc.ucalgary.ca/pub/projects/charity/literature/papers_and_reports/charitable.ps ps] and [ftp://ftp.cpsc.ucalgary.ca/pub/projects/charity/literature/papers_and_reports/charitable.ps.gz ps.gz])
External links
★ Categorical programming with inductive and coinductive types by Varmo Vene
★ Philip Wadler: Recursive types for free! University of Glasgow, July 1998. Draft.
★ Algebra and coalgebra from CLiki
This article provided by Wikipedia. To edit the contents of this article, click here for original source.
psst.. try this: add to faves

العربية
ä¸å›½
Français
Deutsch
Ελληνική
हिनà¥à¤¦à¥€
Italiano
日本語
Português
РуÑÑкий
Español