I am a newbie to Prolog and having a hard time understanding the meaning of the cut operator, !, in different contexts.
For instance, what is the effect of it in this line here? Or how to read this line in plane English
rewrite(p => q, F) :- !, rewrite(~ p or q, F).