Alphabet

f:[nat × nat] ⟶ nat
g:[nat → nat] ⟶ nat

Variables

X:nat → nat

Rules

f(g(λx:nat.f(x, x)), g(λx:nat.f(x, x)))⇒(λx:nat.f(x, x)) · g(λx:nat.f(x, x))