[Agda] Termination checking on coinduction

Alex Rozenshteyn rpglover64 at gmail.com
Fri Feb 17 15:53:57 CET 2012


Thank you!

On Fri, Feb 17, 2012 at 8:09 AM, Nils Anders Danielsson <nad at chalmers.se> wrote:
> On 2012-02-17 13:50, Alex Rozenshteyn wrote:
>>
>>   split : {A : Set} → (A → Bool) → Colist A → Colist (Colist A)
>>   split f [] = [ [] ]
>>   split f (x ∷ xs') with  ♭ xs' | f x
>>   ... | xs | true  = addToListOfLists x (split f xs)
>>   ... | xs | false = split f xs
>
>
> This definition is not productive: split (λ _ → false) (repeat unit)
> does not produce any output.
>
> Section 2 of the following paper contains an introduction to coinduction
> and corecursion in Agda:
>
>  Subtyping, Declaratively
>  An Exercise in Mixed Induction and Coinduction
>  Myself and Thorsten Altenkirch
>  http://www.cse.chalmers.se/~nad/publications/danielsson-altenkirch-subtyping.html
>
> --
> /NAD
>



-- 
          Alex R


More information about the Agda mailing list