packages feed

MiniAgda-0.2014.1.9: test/fail/drop.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)
}

-- drop the first elements of a stream

cofun drop : (i : Size) -> SNat i -> (j : Size) -> Stream j -> Stream j
{
  drop .($ i) (zero i)   j       xs           = xs ;
  drop .($ i) (succ i y) ($ j) (cons .j x xs) = drop i y j xs
}