\lambda n:nat. \lambda H:n=n.\lambda g:(?\to (le n 0))\to True.(g \lambda f.(f n H)) ### (* METASENV after disambiguation *) n : nat; H : (eq nat n n); _ :? _; _ :? _; x : nat |- ?26: Type n : nat; H : (eq nat n n); _ :? _; _ :? _; x : nat |- ?27: ?26[n ; H ; _ ; _ ; x] n : nat; H : (eq nat n n); _ :? _ |- ?8: Type n : nat; H : (eq nat n n); _ :? _ |- ?9: ?8[n ; H ; _] n : nat; H : (eq nat n n) |- ?5: Type n : nat; H : (eq nat n n) |- ?6: ?5[n ; H] ### (* TERM after disambiguation *) [n:nat][H:(eq nat n n)][g:(((x:nat)((eq nat x x)->(le x O))->(le n O))->True)](g [f:(x:nat)((eq nat x x)->(le x O))](f n H)) ### (* TYPE_OF the disambiguated term *) (n:nat)(H:(eq nat n n))(g:(((x:nat)((eq nat x x)->(le x O))->(le n O))->True))True ### (* REDUCED disambiguated term *) [n:nat][H:(eq nat n n)][g:(((x:nat)((eq nat x x)->(le x O))->(le n O))->True)](g [f:(x:nat)((eq nat x x)->(le x O))](f n H))