In the Lambda: Introduction to Lambda Calculus chapter of PLFA, it has the following definition for the lambda calculus, which includes a $\mu$ operator that I haven't seen before.
Syntax of terms
Terms have seven constructs. Three are for the core lambda calculus:
Variables ` x Abstractions ƛ x ⇒ N Applications L · M
Three are for the naturals:
Zero `zero Successor `suc M Case case L [zero⇒ M |suc x ⇒ N ]
And one is for recursion:
Fixpoint μ x ⇒ M
In above, the first group of terms are the classic lambda calculus. The second group seems to be an add-on for natural numbers. I can understand the first two groups. But the third group with the fixpoint and $\mu$ is what I don't understand.
There is also an example of using it:
plus : Term
plus = μ "+" ⇒ ƛ "m" ⇒ ƛ "n" ⇒
case ` "m"
[zero⇒ ` "n"
|suc "m" ⇒ `suc (` "+" · ` "m" · ` "n") ]
, which didn't have much explanation about the $\mu$.
I searched around trying to find out what the $\mu$ is. Is this the $\lambda\mu$-calculus discussed in this question? I saw a lot of discussions here and there about continuation, control and classic logic, and I don't really see how it's connected to the recursive definition of plus
above.
My questions are:
What is the $\mu$ in above definition of lambda calculus (what is the associated formal system)?
Why is it necessary for defining recursion? Isn't it there already some Y combinator in the lambda calculus for defining recursion?
How does it work in the definition of plus
?