STRIP_TAC : tactic
A ?- !x.u ============== STRIP_TAC A ?- u[x'/x]where x' is a primed variant that does not appear free in the assumptions A. If t is a conjunction, then STRIP_TAC simply splits the conjunction into two subgoals:
A ?- v /\ w ================= STRIP_TAC A ?- v A ?- wIf t is an implication, STRIP_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 ?- ?x.w ==> v ==================== A u {w[x'/x]} ?- vwhere x' is a primed variant of x that does not appear free in A. Finally, a negation ~t is treated as the implication t ==> F.
?- !n. m <= n /\ n <= m ==> (m = n)results in the subgoal:
{n <= m, m <= n} ?- m = n