From 30d5bbb7fd66439a469731d682b8c10336ee57a0 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Fri, 22 Dec 2023 20:25:12 +0530 Subject: feat: adds SKI combinators --- src/lambda-calculus.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/lambda-calculus.ts b/src/lambda-calculus.ts index bbd2d1e..7aee968 100644 --- a/src/lambda-calculus.ts +++ b/src/lambda-calculus.ts @@ -112,3 +112,32 @@ export namespace composition { } } +export namespace combinators { + export type I = Abs + export type K = Abs> + export type S = Abs, Ap>>>> + + export type ApplyS = Rewrite, y>, z>, Ap, Ap>> + export type ApplyK = Rewrite, y>, x> + + export namespace proof { + export interface SKK_I_Proof { + type: 'rewrite', + left: Equation, K>, x>, Ap>, // S(K(K(x))) = I(x) + right: ChainRewrites<[ + ApplyS, + ApplyK>, + composition.Abstraction, + Refl + ], this['left']>, + } + export type inverse = [ + // OpToStr>>, + assert>>, + ] + } + + // SIIx = xx + // Booleans + // Y combinator +} -- cgit v1.3.1