- WF_RPROD
-
⊢ ∀R Q. WF R ∧ WF Q ⇒ WF (RPROD R Q)
- WF_LEX
-
⊢ ∀R Q. WF R ∧ WF Q ⇒ WF (R LEX Q)
- UNCURRY_VAR
-
⊢ ∀f v. UNCURRY f v = f (FST v) (SND v)
- UNCURRY_ONE_ONE_THM
-
⊢ (UNCURRY f = UNCURRY g) ⇔ (f = g)
- UNCURRY_DEF
-
⊢ ∀f x y. UNCURRY f (x,y) = f x y
- UNCURRY_CURRY_THM
-
⊢ ∀f. UNCURRY (CURRY f) = f
- UNCURRY_CONG
-
⊢ ∀f' f M' M.
(M = M') ∧ (∀x y. (M' = (x,y)) ⇒ (f x y = f' x y)) ⇒
(UNCURRY f M = UNCURRY f' M')
- transitive_LEX
-
⊢ transitive R1 ∧ transitive R2 ⇒ transitive (R1 LEX R2)
- total_LEX
-
⊢ total R1 ∧ total R2 ⇒ total (R1 LEX R2)
- symmetric_LEX
-
⊢ symmetric R1 ∧ symmetric R2 ⇒ symmetric (R1 LEX R2)
- SND_PAIR_MAP
-
⊢ ∀p f g. SND ((f ## g) p) = g (SND p)
- SND_EQ_EQUIV
-
⊢ (SND p = y) ⇔ ∃x. p = (x,y)
- SND
-
⊢ ∀x y. SND (x,y) = y
- S_UNCURRY_R
-
⊢ S f (UNCURRY g) = UNCURRY (S (S ∘ $o f ∘ $,) g)
- reflexive_LEX
-
⊢ reflexive (R1 LEX R2) ⇔ reflexive R1 ∨ reflexive R2
- PROD_ALL_THM
-
⊢ PROD_ALL P Q (x,y) ⇔ P x ∧ Q y
- PROD_ALL_MONO
-
⊢ (∀x. P x ⇒ P' x) ∧ (∀y. Q y ⇒ Q' y) ⇒ PROD_ALL P Q p ⇒ PROD_ALL P' Q' p
- PROD_ALL_CONG
-
⊢ ∀p p' P P' Q Q'.
(p = p') ∧ (∀x y. (p' = (x,y)) ⇒ (P x ⇔ P' x)) ∧
(∀x y. (p' = (x,y)) ⇒ (Q y ⇔ Q' y)) ⇒
(PROD_ALL P Q p ⇔ PROD_ALL P' Q' p')
- PFORALL_THM
-
⊢ ∀P. (∀x y. P x y) ⇔ ∀(x,y). P x y
- PEXISTS_THM
-
⊢ ∀P. (∃x y. P x y) ⇔ ∃(x,y). P x y
- PAIR_MAP_THM
-
⊢ ∀f g x y. (f ## g) (x,y) = (f x,g y)
- pair_induction
-
⊢ (∀p_1 p_2. P (p_1,p_2)) ⇒ ∀p. P p
- PAIR_FUN_THM
-
⊢ ∀P. (∃!f. P f) ⇔ ∃!p. P (λa. (FST p a,SND p a))
- PAIR_FST_SND_EQ
-
⊢ ∀p q. (p = q) ⇔ (FST p = FST q) ∧ (SND p = SND q)
- PAIR_EQ
-
⊢ ((x,y) = (a,b)) ⇔ (x = a) ∧ (y = b)
- pair_CASES
-
⊢ ∀x. ∃q r. x = (q,r)
- pair_case_thm
-
⊢ pair_CASE (x,y) f = f x y
- pair_case_eq
-
⊢ (pair_CASE p f = v) ⇔ ∃x y. (p = (x,y)) ∧ (f x y = v)
- pair_case_def
-
⊢ pair_CASE (x,y) f = f x y
- pair_case_cong
-
⊢ ∀M M' f.
(M = M') ∧ (∀x y. (M' = (x,y)) ⇒ (f x y = f' x y)) ⇒
(pair_CASE M f = pair_CASE M' f')
- pair_Axiom
-
⊢ ∀f. ∃fn. ∀x y. fn (x,y) = f x y
- o_UNCURRY_R
-
⊢ f ∘ UNCURRY g = UNCURRY ($o f ∘ g)
- LEX_MONO
-
⊢ (∀x y. R1 x y ⇒ R2 x y) ∧ (∀x y. R3 x y ⇒ R4 x y) ⇒
(R1 LEX R3) x y ⇒
(R2 LEX R4) x y
- LEX_DEF_THM
-
⊢ (R1 LEX R2) (a,b) (c,d) ⇔ R1 a c ∨ (a = c) ∧ R2 b d
- LEX_CONG
-
⊢ ∀R1 R2 v1 v2 R1' R2' v1' v2'.
(v1 = v1') ∧ (v2 = v2') ∧
(∀a b c d. (v1' = (a,b)) ∧ (v2' = (c,d)) ⇒ (R1 a c ⇔ R1' a c)) ∧
(∀a b c d. (v1' = (a,b)) ∧ (v2' = (c,d)) ∧ (a = c) ⇒ (R2 b d ⇔ R2' b d)) ⇒
((R1 LEX R2) v1 v2 ⇔ (R1' LEX R2') v1' v2')
- LET2_RATOR
-
⊢ ∀M N b. (let (x,y) = M in N x y) b = (let (x,y) = M in N x y b)
- LET2_RAND
-
⊢ ∀P M N. P (let (x,y) = M in N x y) = (let (x,y) = M in P (N x y))
- LAMBDA_PROD
-
⊢ ∀P. (λp. P p) = (λ(p1,p2). P (p1,p2))
- FST_PAIR_MAP
-
⊢ ∀p f g. FST ((f ## g) p) = f (FST p)
- FST_EQ_EQUIV
-
⊢ (FST p = x) ⇔ ∃y. p = (x,y)
- FST
-
⊢ ∀x y. FST (x,y) = x
- FORALL_UNCURRY
-
⊢ $! (UNCURRY f) ⇔ $! ($! ∘ f)
- FORALL_PROD
-
⊢ (∀p. P p) ⇔ ∀p_1 p_2. P (p_1,p_2)
- EXISTS_PROD
-
⊢ (∃p. P p) ⇔ ∃p_1 p_2. P (p_1,p_2)
- ELIM_UNCURRY
-
⊢ ∀f. UNCURRY f = (λx. f (FST x) (SND x))
- ELIM_PFORALL_EVAL
-
⊢ $! (UNCURRY (λx. P x)) ⇔ ∀x. $! (P x)
- ELIM_PFORALL
-
⊢ (∀p. P (FST p) (SND p)) ⇔ ∀p1 p2. P p1 p2
- ELIM_PEXISTS_EVAL
-
⊢ $? (UNCURRY (λx. P x)) ⇔ ∃x. $? (P x)
- ELIM_PEXISTS
-
⊢ (∃p. P (FST p) (SND p)) ⇔ ∃p1 p2. P p1 p2
- datatype_pair
-
⊢ DATATYPE (pair $,)
- CURRY_UNCURRY_THM
-
⊢ ∀f. CURRY (UNCURRY f) = f
- CURRY_ONE_ONE_THM
-
⊢ (CURRY f = CURRY g) ⇔ (f = g)
- CLOSED_PAIR_EQ
-
⊢ ∀x y a b. ((x,y) = (a,b)) ⇔ (x = a) ∧ (y = b)
- C_UNCURRY_L
-
⊢ combin$C (UNCURRY f) x = UNCURRY (combin$C (combin$C ∘ f) x)
- ABS_PAIR_THM
-
⊢ ∀x. ∃q r. x = (q,r)