Thm* x:A. ( y:A. x = y)  True | [exists_explicit_2] |
Thm* x:A. ( y:A. y = x)  True | [exists_explicit_1] |
Thm* ( x:A. False)  False | [exists_false] |
Thm* T:S, P:(T Prop). ( x:T. P(x))  ( x:T. P(x)) | [not_all] |
Thm* T:S, P:(T Prop). ( x:T. P(x))  ( x:T. P(x)) | [not_exists] |
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* P:(T  ). ( x:T. P(x))  ( x:T. P(x)) | [assert_of_bexists] |
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] |
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] |
Def  x:T. P(x) ==  ( x:T. P(x)) | [bexists] |
Def S == {T:Type| x:T. True } | [stype] |