P has an execution path where it does not call itself
that is true prvoided this path excutes some time in future.
P either refers to a global variable or has atleast one parameter.
it needs to refer to some external variable which will help to activate a path mentioed in step 2.
but the thing garuntes is confusing since. a bad coder like me may go into infite loop with improper implemantion of aqbove condition