[Agda] Ordinals in Agda
Martin Escardo
m.escardo at cs.bham.ac.uk
Fri Nov 4 11:36:25 CET 2011
In my work advertised earlier, I transfinitely iterated an operation of
countable arity in order to get arbitrarily complex omniscient sets in
constructive mathematics (and Agda in particular).
This time I want to advertise cool work by Coquand, Hancock and Setzer
that constructs incredibly large ordinals in a neat way, using Church
encodings of ordinals and lenses. These encodings are nothing but the
transfinite iterators of the ordinals they encode.
Here I content myself with defining basic arithmetic on ordinals
(addition, multiplication and exponentiation), so that an ordinal that
cannot be defined in Goedel's system T becomes definable in Martin-Loef
type theory, and hence Agda, thanks to the use of a universe and
dependent types:
http://www.cs.bham.ac.uk/~mhe/papers/ordinals/ordinals.html
If you want to see really large ordinals, use lenses, available free of
charge at Hanck's web page
http://personal.cis.strath.ac.uk/~ph/
which includes several interesting writings and programs in (the
previous version of) Agda and in Haskell.
Hanck's lenses work like a binocular used the other way round: they make
huge things look tiny.
You may ask why the above authors care. In proof theory, one uses
ordinals to measure the strength of formal logical systems. Here they
are using them to measure the expressivity of programming languages. If
you get (Church encodings of) larger ordinals, you also get more
functions N->N. In particular, Agda defines many more functions N->N
than Goedel's system T.
Martin
More information about the Agda
mailing list