idris-0.9.15: test/reg035/reg035.idr
elimId : (a : Type) ->
(a1 : a) ->
(a2 : a) ->
(m : (x : a) -> (y : a) -> x = y -> Type) ->
(f : (x : a) -> m x x Refl) ->
(id : a1 = a2) ->
m a1 a2 id
elimId _ x _ _ f Refl = f x
tran : (a : Type) -> (b : a) -> (c : a) -> (d : a) ->
(e : b = c) -> (f : c = d) -> b = d
tran = \ a : Type , b : a , c : a , d : a , e : b = c =>
(elimId a b c (\ f : a , g : a , h : f = g =>
(i : a) -> (j : g = i) -> f = i)
(\ f : a , g : a , h : f = g => h) e d)