MiniAgda by Andreas Abel and Karl Mehltretter --- opening "streamIdentityNatRecursive.ma" --- --- scope checking --- --- type checking --- type SNat : + Size -> Set term SNat.zero : .[s!ze : Size] -> .[i < s!ze] -> SNat s!ze term SNat.zero : .[i : Size] -> < SNat.zero i : SNat $i > term SNat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^ SNat i -> SNat s!ze term SNat.succ : .[i : Size] -> ^(y1 : SNat i) -> < SNat.succ i y1 : SNat $i > type Stream : - Size -> Set term Stream.cons : .[i : Size] -> ^(y1 : SNat #) -> ^(y2 : Stream i) -> < Stream.cons i y1 y2 : Stream $i > term sid : .[i : Size] -> SNat i -> .[j : Size] -> Stream j -> Stream j { sid [.$i] (SNat.zero [i]) [j] xs = xs ; sid [.$i] (SNat.succ [i] y) [j] xs = sid [i] y [j] xs } --- evaluating --- --- closing "streamIdentityNatRecursive.ma" ---