[Agda] mu-nu in Agda

Andreas Abel andreas.abel at ifi.lmu.de
Sun May 30 02:47:00 CEST 2010


Hi Thorsten,

On May 29, 2010, at 1:43 PM, Thorsten Altenkirch wrote:
>  the use of
> impredicativity destroys normalisation (try to normalize "f
> bad"). While I assume "Type:Type" System F style impredicativity would
> be sufficent (you only need a "weak large Σ-type to encode T, indeed
> this is the type-theoretic representation of a left Kan extension).
>
> I remember that Thierry once remarked that the structural order in a
> impredicative system isn't always well-founded. I think this example
> is an instance.

This is in Thierry's 1992 paper on pattern matching.  I treat this  
counterexample in Sec. 6.6 of my thesis (page 144 of the printed  
copy).  Guess what: No paradox arises here for sized types.

> Also, Coq seems to avoid this problem by checking that
> structural recursion may only use "recursive arguments", hence the Coq
> terminationchecker isn't untyped.

Bruno Barras is well aware of the trap.

If you look at a simplified version of your T

data T : Set where
   node' : ∀ {X} → (X → T) → T

you will notice that it is not far from

data T : Set where
   node' : (T → T) → T

so you will be able to encode self-application and Omega.  foetus  
assumes predicativity, so Agda's termination checker will not alert you.

> We were also wondering wether it would be already possible to encode
> this example using a predicative hierarchy (which would be bad). Do
> you see a way to do this? I don't.

I'd be surprised.

Cheers,
Andreas


Andreas Abel  <><      Du bist der geliebte Mensch.

Theoretical Computer Science, University of Munich
Oettingenstr. 67, D-80538 Munich, GERMANY

andreas.abel at ifi.lmu.de
http://www2.tcs.ifi.lmu.de/~abel/



More information about the Agda mailing list