packages feed

MiniAgda-0.2014.1.9: test/succeed/streamIdentityNatRecursive.ma

sized data SNat : Size -> Set
{
  zero : (i : Size) -> SNat ($ i);
  succ : (i : Size) -> SNat i -> SNat ($ i)
}

sized codata Stream : Size -> Set {
  cons : (i : Size) -> SNat # -> Stream i -> Stream ($ i)
}


-- a silly stream identity
-- this is refuted by Karl's overly restrictive admissibility test

fun sid : (i : Size) -> SNat i -> (j : Size) -> Stream j -> Stream j
{
  sid .($ i) (zero i)   j xs = xs ;
  sid .($ i) (succ i y) j xs = sid i y j xs
}