[Agda] Running a classical proof with choice in Agda

Martin Escardo m.escardo at cs.bham.ac.uk
Mon May 9 12:41:57 CEST 2011


On 09/05/11 10:56, Thorsten Altenkirch wrote:
> Why has pigeonhole a hidden parameter R which is not referenced in the rest of the type?

Ah! Because I want to write KA and JA assuming an implicit R, where 
KA=((A->R)->R). I disambiguate the R in the proof of the theorems, when 
possible, rather than in their formulation, hoping that readers will 
know that I always mean R (as we do in the publications).

> I guess the definition of pigeonhole unifies R with the first parameter to Pigeonhole but this should be expressed in the type.

I thought omitting R would avoid much clutter, as all occurrences of K 
are meant to use that R (and it does), probably making things clearer 
overall.

> I suspect it may be better to turn R (i.e. the type of responses for the continuations) into a module parameter instead of threading it through the definitions.

Yes, this is probably better. Perhaps in a future version I should try 
that.

> A more general question: Implementing Markov's principle in a naive way destroys termination for open terms. Is this avoided here? I suspect not...

I will give a reply as a reply to Thierry's reply to you.

Best wishes,
Martin



More information about the Agda mailing list