The dom predicate defined earlier in the chapter is used here to demonstrate induction. Given the definitions
     ~<T>== (<T>) -> void
     some <v>:<A>.<P>== <v>:(<A>)#(<P>)
     N== {n:int| ~(n<0)}
     true== (0 in int)
     D(<x>)== rec(dom,x. int_eq(f(x); 0; true; dom(x+1)); <x>)
figure f:N->N, r:D(0) >> some y:N. f(y)=0.Although D(0) is inhabited only by axiom, evaluating the extracted term produces a root.
  
Figure: A Sample Proof Using Recursion