actually, we should avoid using cut, "!", but, however, there are 2 kinds of cut.
This is due to the fact that sometimes we don&#39;t prefer backtracking > <

1. green cut - without change serious semantic
2. red cut - caution to break something