Alphabet

0:ord
s:[ord] ⟶ ord
lim:[nat → ord] ⟶ ord
rec:[ord × a × ord → a → a × (nat → ord) → (nat → a) → a] ⟶ a

Variables

F:nat → ord
U:a
x:ord
X:ord → a → a
W:(nat → ord) → (nat → a) → a

Rules

rec(0, U, X, W)U
rec(s(x), U, X, W)X · x · rec(x, U, X, W)
rec(lim(F), U, X, W)W · F · (λn:nat.rec(F · n, U, X, W))