(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

and(x, false) → false
and(x, not(false)) → x
not(not(x)) → x
implies(false, y) → not(false)
implies(x, false) → not(x)
implies(not(x), not(y)) → implies(y, and(x, y))

Q is empty.

(1) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(2) Obligation:

Q DP problem:
The TRS P consists of the following rules:

IMPLIES(false, y) → NOT(false)
IMPLIES(x, false) → NOT(x)
IMPLIES(not(x), not(y)) → IMPLIES(y, and(x, y))
IMPLIES(not(x), not(y)) → AND(x, y)

The TRS R consists of the following rules:

and(x, false) → false
and(x, not(false)) → x
not(not(x)) → x
implies(false, y) → not(false)
implies(x, false) → not(x)
implies(not(x), not(y)) → implies(y, and(x, y))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(3) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes.

(4) Obligation:

Q DP problem:
The TRS P consists of the following rules:

IMPLIES(not(x), not(y)) → IMPLIES(y, and(x, y))

The TRS R consists of the following rules:

and(x, false) → false
and(x, not(false)) → x
not(not(x)) → x
implies(false, y) → not(false)
implies(x, false) → not(x)
implies(not(x), not(y)) → implies(y, and(x, y))

Q is empty.
We have to consider all minimal (P,Q,R)-chains.

(5) QDPSizeChangeProof (EQUIVALENT transformation)

We used the following order together with the size-change analysis [AAECC05] to show that there are no infinite chains for this DP problem.

Order:Polynomial interpretation [POLO]:


POL(and(x1, x2)) = x1   
POL(false) = 0   
POL(not(x1)) = 1 + x1   

From the DPs we obtained the following set of size-change graphs:

  • IMPLIES(not(x), not(y)) → IMPLIES(y, and(x, y)) (allowed arguments on rhs = {1, 2})
    The graph contains the following edges 2 > 1, 1 > 2

We oriented the following set of usable rules [AAECC05,FROCOS05].


and(x, not(false)) → x
and(x, false) → false

(6) TRUE