Thm* 'a:S, P,Q:('a Prop).
Thm* ( x:'a. Q(x)  P(x))  ( x:'a. Q(x))  P(@x:'a. Q(x)) | [choose_elim_pos] |
Thm* 'a:S, P,Q:('a Prop).
Thm* ( x:'a. Q(x)  P(x))
Thm* 
Thm* (( x:'a. Q(x))  ( x:'a. P(x)))  P(@x:'a. Q(x)) | [choose_elim_neg] |
Thm* P:('a Prop), x:'a. P(x)  P(@x:'a. P(x)) | [choose_true] |
Thm* P:('a Type), x:'a. P(x)  ( y:'a. P(y)  x = y)  (@y:'a. P(y)) = x | [choose_unique] |
Thm* T:S, P,Q:(T Type). ( x:T. P(x)  Q(x))  (@x:T. P(x)) = (@x:T. Q(x)) | [choose_functionality_axiom] |
Def iso_pair('a;'b;P;rep;abs)
Def == ( r:'b. abs(r) = (@a:'a. (r = rep(a)))) & type_definition('b;'a;P;rep) | [iso_pair] |