packages feed

MiniAgda-0.2014.1.9: test/fail/IdFoolingEta.ma

data Id (A : Set) (a : A) : A -> Set 
{ refl : Id A a a 
}

fun subst : (A : Set) -> (a : A) -> (b : A) -> Id A a b -> 
  (P : A -> Set) -> P a -> P b
{ subst A a .a (refl) P x = x
}

-- this does not typecheck since f A a b expands to * but subst blocks
let offDia : (f : (A : Set) -> (a : A) -> (b : A) -> Id A a b) ->
             (A : Set) -> (a : A) -> (b : A) -> 
              Id (Id A a b) 
               (f A a b) 
               (subst A a b (f A a b) (Id A a) (refl))
  = \ f -> \ A -> \ a -> \ b -> refl {- (Id A a b) (subst A a b (f A a b) (Id A a) (refl A a)) -}