Given a goal (A,t), PSTRIP_TAC removes one outermost occurrence of one of
the connectives !, ==>, ~ or /\ from the conclusion of the goal t.
If t is a universally quantified term, then STRIP_TAC strips off the
quantifier. Note that PSTRIP_TAC will strip off paired quantifications.
     A ?- !p. u
   ==============  PSTRIP_TAC
    A ?- u[p'/p]
 
where p' is a primed variant of the pair p that does not contain
any variables that appear free in the assumptions A.  If t is a
conjunction, then PSTRIP_TAC simply splits the conjunction into two subgoals:
      A ?- v /\ w
   =================  PSTRIP_TAC
    A ?- v   A ?- w
 
If t is an implication, PSTRIP_TAC moves the antecedent into the
assumptions, stripping conjunctions, disjunctions and existential
quantifiers according to the following rules:
    A ?- v1 /\ ... /\ vn ==> v            A ?- v1 \/ ... \/ vn ==> v
   ============================        =================================
       A u {v1,...,vn} ?- v             A u {v1} ?- v ... A u {vn} ?- v
     A ?- (?p. w) ==> v
   =====================
    A u {w[p'/p]} ?- v
 
where p' is a primed variant of the pair p that does not appear
free in A. Finally, a negation ~t is treated as the implication t ==> F.