Thm* a:T, Q:(T Prop). (a = !x:T. Q(x))  a {!x:T | Q(x)} | [uni_sat_imp_in_uni_set] |
Thm* a:T, x:{a:T}. x = a T | [singleton_properties] |
Thm* B:(A Type), p:(x:A B(x)), C:Type, b:(x:A B(x) C).
Thm* (p/x,y. b(x,y)) = b(1of(p),2of(p)) | [spread_to_pi12] |
Thm* B:(A Type), p:(x:A B(x)), C,D:Type, f:(C D), b:(x:A B(x) C).
Thm* f(p/x,y. b(x,y)) = (p/x,y. f(b(x,y))) | [fun_thru_spread] |
Thm* A,B:Type, a:A, b:(A B). let x = a in b(x) B | [let_wf] |
Thm* (P  Q)  (Q  P)  (P  Q) | [implies_antisymmetry] |
Thm* (P  Q)  ( P  Q) | [squash_functionality_wrt_iff] |
Thm* (P  Q)  P  Q | [squash_functionality_wrt_implies] |
Thm* (P1  P2)  (Q1  Q2)  P1 Q1  P2 Q2 | [or_functionality_wrt_implies] |
Thm* (P1  P2)  (Q1  Q2)  (P1 Q1  P2 Q2) | [or_functionality_wrt_iff] |
Thm* (P  Q)  P  Q | [not_functionality_wrt_implies] |
Thm* (P  Q)  ( P  Q) | [not_functionality_wrt_iff] |
Thm* P,Q:(S Prop).
Thm* S = T  ( x:S. P(x)  Q(x))  ( x:S. P(x))  ( y:T. Q(y)) | [exists_functionality_wrt_implies] |
Thm* P,Q:(S Prop).
Thm* S = T  ( x:S. P(x)  Q(x))  (( x:S. P(x))  ( y:T. Q(y))) | [exists_functionality_wrt_iff] |
Thm* P,Q:(S Prop).
Thm* S = T  ( z:S. P(z)  Q(z))  ( x:S. P(x))  ( y:T. Q(y)) | [all_functionality_wrt_implies] |
Thm* P,Q:(S Prop).
Thm* S = T  ( x:S. P(x)  Q(x))  (( x:S. P(x))  ( y:T. Q(y))) | [all_functionality_wrt_iff] |
Thm* (P1  P2)  (Q1  Q2)  ((P1  Q1)  (P2  Q2)) | [iff_functionality_wrt_iff] |
Thm* (P  Q)  (Dec(P)  Dec(Q)) | [decidable_functionality] |
Thm* (P1  P2)  (Q1  Q2)  (P1  Q1)  P2  Q2 | [implies_functionality_wrt_implies] |
Thm* (P1  P2)  (Q1  Q2)  ((P1  Q1)  (P2  Q2)) | [implies_functionality_wrt_iff] |
Thm* (P1  P2)  (Q1  Q2)  P1 & Q1  P2 & Q2 | [and_functionality_wrt_implies] |
Thm* (P1  P2)  (Q1  Q2)  (P1 & Q1  P2 & Q2) | [and_functionality_wrt_iff] |
Thm* (P  Q)  (Q  R)  P  R | [implies_transitivity] |
Thm* (P  Q)  (Q  R)  (P  R) | [iff_transitivity] |
Thm* Q:(T Prop). ( x:T. Q(x))  ( x:T. Q(x)) | [not_over_exists] |
Thm* B:(T Prop). ( x:T. A & B(x))  A & ( x:T. B(x)) | [exists_over_and_r] |
Thm* A True  True | [or_true_r] |
Thm* True A  True | [or_true_l] |
Thm* A False  A | [or_false_r] |
Thm* False A  A | [or_false_l] |
Thm* A & True  A | [and_true_r] |
Thm* True & A  A | [and_true_l] |
Thm* A & False  False | [and_false_r] |
Thm* False & A  False | [and_false_l] |
Thm* Dec(A)  ( (A & B)  A B) | [not_over_and] |
Thm* A B  (A & B) | [not_over_and_b] |
Thm* (A B)  A & B | [not_over_or_a] |
Thm* (A B)  A & B | [not_over_or] |
Thm* A B  B A | [or_comm] |
Thm* A (B C)  (A B) C | [or_assoc] |
Thm* A & B  B & A | [and_comm] |
Thm* A & (B & C)  (A & B) & C | [and_assoc] |
Thm* (A  B)  (B  A) | [iff_symmetry] |
Thm* Dec(A)  ( A  A) | [dneg_elim_a] |
Thm* Dec(A)   A  A | [dneg_elim] |
Thm* SqStable(P)  ( P  P) | [squash_elim] |
Thm* Dec(P)  SqStable(P) | [sq_stable_from_decidable] |
Thm* SqStable( P) | [sq_stable__not] |
Thm* Stable{P}  SqStable(P) | [sq_stable__from_stable] |
Thm* SqStable( P) | [sq_stable__squash] |
Thm* x,y:A. SqStable(x = y) | [sq_stable__equal] |
Thm* P:(A Prop). ( x:A. SqStable(P(x)))  SqStable( x:A. P(x)) | [sq_stable__all] |
Thm* SqStable(P)  SqStable(Q)  SqStable(P  Q) | [sq_stable__iff] |
Thm* SqStable(Q)  SqStable(P  Q) | [sq_stable__implies] |
Thm* SqStable(P)  SqStable(Q)  SqStable(P & Q) | [sq_stable__and] |
Thm* Dec(P)  Stable{P} | [stable__from_decidable] |
Thm* f,g:(A B). ( x:A. Stable{f(x) = g(x)})  Stable{f = g} | [stable__function_equal] |
Thm* Stable{ P} | [stable__not] |
Thm* Dec(A)  (A  B)  Dec(B) | [iff_preserves_decidability] |
Thm* a,b:Atom. Dec(a = b) | [decidable__atom_equal] |
Thm* i,j: . Dec(i = j) | [decidable__int_equal] |
Thm* Dec(P)  Dec(Q)  Dec(P  Q) | [decidable__iff] |
Thm* Dec(P)  Dec(Q)  Dec(P  Q) | [decidable__implies] |
Thm* Dec(P)  Dec(Q)  Dec(P & Q) | [decidable__and] |
Thm* Dec(P)  Dec(Q)  Dec(P Q) | [decidable__or] |
Thm* a:Unit. a =  | [unit_triviality] |
Thm* B:(A Type), p:(a:A B(a)). <1of(p),2of(p)> = p a:A B(a) | [pair_eta_rw] |
Thm* A:Type, B:(A Type), p:(a:A B(a)). 2of(p) B(1of(p)) | [pi2_wf] |
Thm* A:Type, a:A. (a A) Type | [member_wf] |
Def a = !x:T. Q(x) == Q(a) & ( a':T. Q(a')  a' = a) | [uni_sat] |
Def {!x:T | P(x)} == {x:T| P(x) & ( y:T. P(y)  y = x) } | [unique_set] |
Def XM == P:Prop. Dec(P) | [xmiddle] |
Def S T == x:S. x T | [subtype] |