YES

The TRS could be proven terminating. The proof took 39 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (22ms).
 | – Problem 2 was processed with processor SubtermCriterion (1ms).
 |    | – Problem 4 was processed with processor SubtermCriterion (1ms).
 | – Problem 3 was processed with processor SubtermCriterion (1ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

and#(x, or(y, z)) → and#(x, z)and#(x, and(y, y)) → and#(x, y)
or#(x, or(y, y)) → or#(x, y)and#(x, or(y, z)) → or#(and(x, y), and(x, z))
and#(x, or(y, z)) → and#(x, y)or#(or(x, y), and(y, z)) → or#(x, y)

Rewrite Rules

and(x, or(y, z)) → or(and(x, y), and(x, z))and(x, and(y, y)) → and(x, y)
or(or(x, y), and(y, z)) → or(x, y)or(x, and(x, y)) → x
or(true, y) → trueor(x, false) → x
or(x, x) → xor(x, or(y, y)) → or(x, y)
and(x, true) → xand(false, y) → false
and(x, x) → x

Original Signature

Termination of terms over the following signature is verified: or, true, false, and

Strategy


The following SCCs where found

and#(x, or(y, z)) → and#(x, z)and#(x, and(y, y)) → and#(x, y)
and#(x, or(y, z)) → and#(x, y)

or#(x, or(y, y)) → or#(x, y)or#(or(x, y), and(y, z)) → or#(x, y)

Problem 2: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

or#(x, or(y, y)) → or#(x, y)or#(or(x, y), and(y, z)) → or#(x, y)

Rewrite Rules

and(x, or(y, z)) → or(and(x, y), and(x, z))and(x, and(y, y)) → and(x, y)
or(or(x, y), and(y, z)) → or(x, y)or(x, and(x, y)) → x
or(true, y) → trueor(x, false) → x
or(x, x) → xor(x, or(y, y)) → or(x, y)
and(x, true) → xand(false, y) → false
and(x, x) → x

Original Signature

Termination of terms over the following signature is verified: or, true, false, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

or#(or(x, y), and(y, z)) → or#(x, y)

Problem 4: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

or#(x, or(y, y)) → or#(x, y)

Rewrite Rules

and(x, or(y, z)) → or(and(x, y), and(x, z))and(x, and(y, y)) → and(x, y)
or(or(x, y), and(y, z)) → or(x, y)or(x, and(x, y)) → x
or(true, y) → trueor(x, false) → x
or(x, x) → xor(x, or(y, y)) → or(x, y)
and(x, true) → xand(false, y) → false
and(x, x) → x

Original Signature

Termination of terms over the following signature is verified: or, false, true, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

or#(x, or(y, y)) → or#(x, y)

Problem 3: SubtermCriterion



Dependency Pair Problem

Dependency Pairs

and#(x, or(y, z)) → and#(x, z)and#(x, and(y, y)) → and#(x, y)
and#(x, or(y, z)) → and#(x, y)

Rewrite Rules

and(x, or(y, z)) → or(and(x, y), and(x, z))and(x, and(y, y)) → and(x, y)
or(or(x, y), and(y, z)) → or(x, y)or(x, and(x, y)) → x
or(true, y) → trueor(x, false) → x
or(x, x) → xor(x, or(y, y)) → or(x, y)
and(x, true) → xand(false, y) → false
and(x, x) → x

Original Signature

Termination of terms over the following signature is verified: or, true, false, and

Strategy


Projection

The following projection was used:

Thus, the following dependency pairs are removed:

and#(x, or(y, z)) → and#(x, z)and#(x, and(y, y)) → and#(x, y)
and#(x, or(y, z)) → and#(x, y)