inductive imf (f : nat → nat) : nat → Type
| mk1 : ∀ (a : nat), imf (f a)
| mk2 : imf (f 0 + 1)

definition inv_2 (f : nat → nat) : ∀ (b : nat), imf f b → {x : nat \ x > b} →nat
| ⌞f a⌟     (imf.mk1 ⌞f⌟ a) x := a
| ⌞f 0 + 1⌟ (imf.mk2 ⌞f⌟)   x := subtype.elt_of x
