R
↳Dependency Pair Analysis
AND(xor(x, y), z) -> XOR(and(x, z), and(y, z))
AND(xor(x, y), z) -> AND(x, z)
AND(xor(x, y), z) -> AND(y, z)
IMPL(x, y) -> XOR(and(x, y), xor(x, T))
IMPL(x, y) -> AND(x, y)
IMPL(x, y) -> XOR(x, T)
OR(x, y) -> XOR(and(x, y), xor(x, y))
OR(x, y) -> AND(x, y)
OR(x, y) -> XOR(x, y)
EQUIV(x, y) -> XOR(x, xor(y, T))
EQUIV(x, y) -> XOR(y, T)
NEG(x) -> XOR(x, T)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
AND(xor(x, y), z) -> AND(y, z)
AND(xor(x, y), z) -> AND(x, z)
xor(x, F) -> x
xor(x, neg(x)) -> F
xor(x, x) -> F
and(x, T) -> x
and(x, F) -> F
and(x, x) -> x
and(xor(x, y), z) -> xor(and(x, z), and(y, z))
impl(x, y) -> xor(and(x, y), xor(x, T))
or(x, y) -> xor(and(x, y), xor(x, y))
equiv(x, y) -> xor(x, xor(y, T))
neg(x) -> xor(x, T)
innermost
one new Dependency Pair is created:
AND(xor(x, y), z) -> AND(x, z)
AND(xor(xor(x'', y''), y), z'') -> AND(xor(x'', y''), z'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Forward Instantiation Transformation
AND(xor(xor(x'', y''), y), z'') -> AND(xor(x'', y''), z'')
AND(xor(x, y), z) -> AND(y, z)
xor(x, F) -> x
xor(x, neg(x)) -> F
xor(x, x) -> F
and(x, T) -> x
and(x, F) -> F
and(x, x) -> x
and(xor(x, y), z) -> xor(and(x, z), and(y, z))
impl(x, y) -> xor(and(x, y), xor(x, T))
or(x, y) -> xor(and(x, y), xor(x, y))
equiv(x, y) -> xor(x, xor(y, T))
neg(x) -> xor(x, T)
innermost
two new Dependency Pairs are created:
AND(xor(x, y), z) -> AND(y, z)
AND(xor(x, xor(x'', y'')), z'') -> AND(xor(x'', y''), z'')
AND(xor(x, xor(xor(x'''', y''''), y'')), z') -> AND(xor(xor(x'''', y''''), y''), z')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
...
→DP Problem 3
↳Remaining Obligation(s)
AND(xor(x, xor(xor(x'''', y''''), y'')), z') -> AND(xor(xor(x'''', y''''), y''), z')
AND(xor(x, xor(x'', y'')), z'') -> AND(xor(x'', y''), z'')
AND(xor(xor(x'', y''), y), z'') -> AND(xor(x'', y''), z'')
xor(x, F) -> x
xor(x, neg(x)) -> F
xor(x, x) -> F
and(x, T) -> x
and(x, F) -> F
and(x, x) -> x
and(xor(x, y), z) -> xor(and(x, z), and(y, z))
impl(x, y) -> xor(and(x, y), xor(x, T))
or(x, y) -> xor(and(x, y), xor(x, y))
equiv(x, y) -> xor(x, xor(y, T))
neg(x) -> xor(x, T)
innermost