[Agda] internal error with sized types

Nils Anders Danielsson nad at Cs.Nott.AC.UK
Tue Feb 10 12:07:13 CET 2009


On 2009-02-09 14:04, Andreas Abel wrote:
> anno : {i : Size} → N {i} → ⊤
> anno {i} x with case {↑ i} x
> ... | {- z -}   inj₁ _ = tt
> ... | {- s y -} inj₂ y = anno y

> Also note that your code is not strongly normalizing, so it ought not
> termination check:
> 
>   anno x --> case x ...  anno y
>          --> case x ...  case y ... anno y'
> 
> thus, there is infinite unfolding of anno.  The same function written
> with pattern matching is strongly normalizing, since unmatched patterns
> block further unfolding.

anno y is protected by pattern matching, so the unfolding you indicate
should not occur.

-- 
/NAD


This message has been checked for viruses but the contents of an attachment
may still contain software viruses, which could damage your computer system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.



More information about the Agda mailing list