[Agda] difficult termination

Martin Escardo m.escardo at cs.bham.ac.uk
Mon Nov 20 21:34:58 CET 2017



On 20/11/17 18:57, mechvel at botik.ru wrote:
> Thank you.
> Yes, I thought of Markov's principle.
> It is good.
> But P is still rather arbitrary.
> It is desirable to have an example in which P is as concrete
> as possible.
> May be, some modification of Ackermann's function is possible.

It won't be so easy. You are asking questions about the proof theory of 
Agda / Martin-Lof Type Theory.

If you don't have any universe (type "Set") or fancy inductive types 
(defining universes), the expressivity of the language is like that of 
Goedel's system T regarding what functions N->N you can defined 
(including, in particular, Ackermann's function, as you say).

Once you start having universes Set1, Set2, Set3, ... you start 
increasing the amount of definable functions N->N. The termination 
checker by itself won't believe your definitions automatically, though, 
as you increase the universes you allow yourself to use. Instead, you 
will have to provide bonafide, rather subtle, means of definition by 
yourself.

Also, there is another subtle point: the fact that you can't prove 
something like "for all ..., blah", doesn't mean that you will be able 
to come up with an example of a "..." such that "not blah".

Martin




More information about the Agda mailing list