packages feed

MiniAgda-0.2014.1.9: test/fail/PolarityWrongCast.ma

-- 2010-06-19

let DNeg : Set -> +Set -> Set
         = \ B -> \ A -> (A -> B) -> B

data Empty : Set {}

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

-- hide positivity behind recursion
fun Id : Nat # -> ++Set -> Set
{ Id (zero .#)   A = A
; Id (succ .# n) A = A
}

-- SUBTYPING the wrong way round
let kast : [i : Size] -> [n : Nat i] -> Id n (Nat #) -> Id n (Nat i)
         = \ i -> \ n -> \ x -> x