REST is clearly Stateless, meaning the request to the server contains all the information that the server requires to understand it, the server does not maintain a session. Now my question is, does SOAP has to be stateful, I have worked with SOAP where the exact definition of REST would seem to be true for SOAP as well?
Now my question is Does SOAP HAVE to be state-full..
No. SOAP can be stateful, but it definitely doesn't have to be. Actually, you have to put some effort in order to achieve stateful behaviour. I suggest reading this article.