I had a very quick question when it comes to CFG (more specifically the attributes of CNF). I've been browsing over some examples and I've come across a few that confuse me. One such example is this:
$$\begin{align}S&\to XA|BB\\ B&\to b|SB\\ X&\to b\\ A&\to a\\ \end{align}$$
It is stated that this is indeed in CNF, but my confusion lies in the fact that under most rules it is stated that if the starting state $S$ exists in some RHS (in this case $B\to b|SB$) we must create a rule that states $S'\to S$.
Since that doesn't exist in this example, why is this considered to be in CNF? I also understand the rules of CNF, I also see that this example technically satisfies all those rules, so I am wondering if that is the reason?
Rules: $$\begin{align}A&\to a\\ A&\to BC\\ \end{align}$$
Thank you for the help in advance!
Here is the link to the question for reference ( it deals with CFG TO GNF) https://www.geeksforgeeks.org/converting-context-free-grammar-greibach-normal-form/