[Agda] running out of memory in formalization of category theory

kahl at cas.mcmaster.ca kahl at cas.mcmaster.ca
Sun Jun 6 20:49:19 CEST 2010


Nils Anders Danielsson wrote:
 > 
 > > We sometimes proved those theorems, then postulated the proofs and
 > > referred to the postulated proofs, just in order to avoid Agda
 > > normalising the proofs.
 > 
 > You don't need to use postulates. Use abstract instead:
 > 
 >    abstract
 > 
 >      foo : Foo
 >      foo = …
 > 
 >      bar : Bar
 >      bar = …
 > 
 > Here foo and bar are transparent within the abstract block (within all
 > abstract blocks in the same module, I believe ①), but opaque outside.

This is the first time I learn about ``abstract'' in Agda,
which got me wondering: Where is ``abstract'' documented?
The first relevant place I found on the wiki is

  http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.VisibilityAndEvaluation

, which says:

 | Few people seem to be aware of the issues raised above, or the presence of
 | abstract, and some discussion about abstraction would be nice. 

Too true, even today!

There is also a partial specification in

  http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Bugs.20070616-1

 | If a definition d is abstract, then the following guarantee should apply:
 | 
 |   * As long as the type signature of d is unchanged its implementation
 |     can be changed in any way without statically affecting code outside
 |     of the abstraction barrier (the behaviour of a running program can of
 |     course be affected). 

But there is nothing in the reference manual.


Ulf's thesis already includes ``abstract'' in the list of reserved words,
but, at least by searching through the PDF, I could not find any related
explanation.


Is there more documentation of ``abstract'' anywhere?


Wolfram


More information about the Agda mailing list