Alphabet

const:[a × b] ⟶ a
fix:[(f → g) → f → g] ⟶ f → g
subst:[c → d → e × c → d × c] ⟶ e

Variables

X:a
Y:b
G:c → d → e
H:c → d
W:c
J:(f → g) → f → g
X1:f

Rules

const(X, Y)X
subst(G, H, W)G · W · (H · W)
fix(J) · X1J · fix(J) · X1