I am wondering what exactly the difference between CTL and CTL* is. I know that CTL* is strictly more expressive than CTL, but it is not clear to me how the "restrictions" to CTL accomplish that. I.e., why do we have to alternate quantifiers and do not allow negation nor conjunction (no boolean logic)?
In the book I am reading "Principles of Model Checking" by Baier & Katoen, the abstract syntax for CTL simply enforces the aforementioned restrictions by construction.
I would appreciate some "intuition" behind this, e.g., why are the restrictions necessary and where could these restrictions be stretched.