Im Kurs besprochene Kombinatoren
• Typen-Anhebung:
M :A ⇒ λf.f(M) :B/(A\B) M :A ⇒ λf.f(M) : (B/A)\B
• Argument-Senkung:
M : (A/(B\A))\C ⇒ λx.M(λf.f(x)) :B\C M : ((A/B)\A)\C ⇒ λx.M(λf.f(x)) :B\C M :C/(A/(B\A)) ⇒ λx.M(λf.f(x)) :C/B M :C/((A/B)\A) ⇒ λx.M(λf.f(x)) :C/B
• Swapping:
M :A\(B/C) ⇒ λxλy.M(x, y) : (A\B)/C M : (A\B)/C ⇒ λxλy.M(x, y) :A\(B/C)
• Funktions-Komposition:
M :A/B, N :B/C ⇒ λx.M(N(x)) :A/C M :A\B, N:B\C ⇒ λx.M(N(x)) :A\C
• Geach-Regeln:
M :A/B ⇒ λf λx.M(f(x)) : (A/C)/(B/C) M :A\B ⇒ λf λx.M(f(x)) : (C\A)\(C\B) M :A/B ⇒ λf λxf(M(x)) : (C/A)\(C/B) M :A\B ⇒ λf λxf(M(x)) : (A\C)/(B\C)
1