Theory "combin"

Parents     marker

Signature

Constant Type
:> :β -> (β -> α) -> α
ASSOC :(α -> α -> α) -> bool
C :(α -> β -> γ) -> β -> α -> γ
COMM :(α -> α -> β) -> bool
FAIL :α -> β -> α
FCOMM :(α -> β -> α) -> (γ -> α -> α) -> bool
I :α -> α
K :α -> β -> α
LEFT_ID :(α -> β -> β) -> α -> bool
MONOID :(α -> α -> α) -> α -> bool
RIGHT_ID :(α -> β -> α) -> β -> bool
S :(α -> β -> γ) -> (α -> β) -> α -> γ
UPDATE :α -> β -> (α -> β) -> α -> β
W :(α -> α -> β) -> α -> β
o :(γ -> β) -> (α -> γ) -> α -> β

Definitions

APP_DEF
⊢ ∀x f. x :> f = f x
ASSOC_DEF
⊢ ∀f. ASSOC f ⇔ ∀x y z. f x (f y z) = f (f x y) z
COMM_DEF
⊢ ∀f. COMM f ⇔ ∀x y. f x y = f y x
C_DEF
⊢ flip = (λf x y. f y x)
FAIL_DEF
⊢ FAIL = (λx y. x)
FCOMM_DEF
⊢ ∀f g. FCOMM f g ⇔ ∀x y z. g x (f y z) = f (g x y) z
I_DEF
⊢ I = S K K
K_DEF
⊢ K = (λx y. x)
LEFT_ID_DEF
⊢ ∀f e. LEFT_ID f e ⇔ ∀x. f e x = x
MONOID_DEF
⊢ ∀f e. MONOID f e ⇔ ASSOC f ∧ RIGHT_ID f e ∧ LEFT_ID f e
RIGHT_ID_DEF
⊢ ∀f e. RIGHT_ID f e ⇔ ∀x. f x e = x
S_DEF
⊢ S = (λf g x. f x (g x))
UPDATE_def
⊢ ∀a b. a =+ b = (λf c. if a = c then b else f c)
W_DEF
⊢ W = (λf x. f x x)
o_DEF
⊢ ∀f g. f ∘ g = (λx. f (g x))


Theorems

APPLY_UPDATE_ID
⊢ ∀f a. f⦇a ↦ f a⦈ = f
APPLY_UPDATE_THM
⊢ ∀f a b c. f⦇a ↦ b⦈ c = if a = c then b else f c
ASSOC_CONJ
⊢ ASSOC $/\
ASSOC_DISJ
⊢ ASSOC $\/
ASSOC_SYM
⊢ ∀f. ASSOC f ⇔ ∀x y z. f (f x y) z = f x (f y z)
C_ABS_L
⊢ flip (λx. f x) y = (λx. f x y)
C_THM
⊢ ∀f x y. flip f x y = f y x
FAIL_THM
⊢ FAIL x y = x
FCOMM_ASSOC
⊢ ∀f. FCOMM f f ⇔ ASSOC f
GEN_LET_RAND
⊢ P (LET f v) = LET (P ∘ f) v
GEN_LET_RATOR
⊢ LET f v x = LET (flip f x) v
GEN_literal_case_RAND
⊢ P (literal_case f v) = literal_case (P ∘ f) v
GEN_literal_case_RATOR
⊢ literal_case f v x = literal_case (flip f x) v
I_THM
⊢ ∀x. I x = x
I_o_ID
⊢ ∀f. (I ∘ f = f) ∧ (f ∘ I = f)
K_THM
⊢ ∀x y. K x y = x
K_o_THM
⊢ (∀f v. K v ∘ f = K v) ∧ ∀f v. f ∘ K v = K (f v)
LET_FORALL_ELIM
⊢ LET f v ⇔ $! (S ($==> ∘ Abbrev ∘ flip $= v) f)
MONOID_CONJ_T
⊢ MONOID $/\ T
MONOID_DISJ_F
⊢ MONOID $\/ F
SAME_KEY_UPDATE_DIFFER
⊢ ∀f1 f2 a b c. b ≠ c ⇒ f⦇a ↦ b⦈ ≠ f⦇a ↦ c⦈
S_ABS_L
⊢ S (λx. f x) g = (λx. f x (g x))
S_ABS_R
⊢ S f (λx. g x) = (λx. f x (g x))
S_THM
⊢ ∀f g x. S f g x = f x (g x)
UPD11_SAME_BASE
⊢ ∀f a b c d.
    (f⦇a ↦ c⦈ = f⦇b ↦ d⦈) ⇔
    (a = b) ∧ (c = d) ∨ a ≠ b ∧ (f⦇a ↦ c⦈ = f) ∧ (f⦇b ↦ d⦈ = f)
UPD11_SAME_KEY_AND_BASE
⊢ ∀f a b c. (f⦇a ↦ b⦈ = f⦇a ↦ c⦈) ⇔ (b = c)
UPDATE_APPLY
⊢ (∀a x f. f⦇a ↦ x⦈ a = x) ∧ ∀a b x f. a ≠ b ⇒ (f⦇a ↦ x⦈ b = f b)
UPDATE_APPLY_ID
⊢ ∀f a b. (f a = b) ⇔ (f⦇a ↦ b⦈ = f)
UPDATE_APPLY_ID_RWT
⊢ (∀f a b. (f⦇a ↦ b⦈ = f) ⇔ (f a = b)) ∧ ∀f a b. (f = f⦇a ↦ b⦈) ⇔ (f a = b)
UPDATE_APPLY_IMP_ID
⊢ ∀f b a. (f a = b) ⇒ (f⦇a ↦ b⦈ = f)
UPDATE_COMMUTES
⊢ ∀f a b c d. a ≠ b ⇒ (f⦇a ↦ c; b ↦ d⦈ = f⦇b ↦ d; a ↦ c⦈)
UPDATE_EQ
⊢ ∀f a b c. f⦇a ↦ c; a ↦ b⦈ = f⦇a ↦ c⦈
UPD_SAME_KEY_UNWIND
⊢ ∀f1 f2 a b c. (f1⦇a ↦ b⦈ = f2⦇a ↦ c⦈) ⇒ (b = c) ∧ ∀v. f1⦇a ↦ v⦈ = f2⦇a ↦ v⦈
W_THM
⊢ ∀f x. W f x = f x x
literal_case_FORALL_ELIM
⊢ literal_case f v ⇔ $! (S ($==> ∘ Abbrev ∘ flip $= v) f)
o_ABS_L
⊢ (λx. f x) ∘ g = (λx. f (g x))
o_ABS_R
⊢ f ∘ (λx. g x) = (λx. f (g x))
o_ASSOC
⊢ ∀f g h. f ∘ g ∘ h = (f ∘ g) ∘ h
o_ASSOC'
⊢ ∀f g h. (f ∘ g) ∘ h = f ∘ g ∘ h
o_THM
⊢ ∀f g x. (f ∘ g) x = f (g x)