Thm* b: . b  b = false | [not_assert_imp_eq_bfalse] |
Thm* b: . b  b = true | [assert_imp_eq_btrue] |
Thm* (True  P)  P | [true_imp] |
Thm* (False  P)  True | [false_imp] |
Thm* (P  True)  True | [imp_true] |
Thm* (P  False)  P | [imp_false] |
Thm* 'a,'b:S, P:('b  ), rep:('a 'b), abs:('b 'a), a:'a, r:'b.
Thm* iso_pair('a;'b;P;rep;abs)  rep(a) = r  a = abs(r) | [iso_pair_rep_to_abs] |
Thm* 'a,'b:S, P:('b  ), rep:('a 'b), abs:('b 'a).
Thm* iso_pair('a;'b;P;rep;abs)
Thm* 
Thm* ( a:'a. abs(rep(a)) = a) & ( r:'b. P(r) = ((rep(abs(r))) = r)) | [iso_pair_char] |
Thm* 'a,'b:S, P:('b  ), rep:('a 'b), abs:('b 'a).
Thm* iso_pair('a;'b;P;rep;abs)
Thm* 
Thm* ( rep':('a 'b). type_definition('b;'a;P;rep')) | [type_def_iso] |
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 type_definition('a;'b;P;rep)
Def == ( x',x'':'b. rep(x') = rep(x'') 'a  x' = x'')
Def == & ( x:'a. (P(x))  ( x':'b. x = rep(x'))) | [type_definition] |