(0) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
reverse(nil) → nil
reverse(add(n, x)) → app(reverse(x), add(n, nil))
shuffle(nil) → nil
shuffle(add(n, x)) → add(n, shuffle(reverse(x)))
Q is empty.
(1) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = x1 + x2
POL(app(x1, x2)) = x1 + x2
POL(nil) = 0
POL(reverse(x1)) = x1
POL(shuffle(x1)) = 1 + x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
shuffle(nil) → nil
(2) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
reverse(nil) → nil
reverse(add(n, x)) → app(reverse(x), add(n, nil))
shuffle(add(n, x)) → add(n, shuffle(reverse(x)))
Q is empty.
(3) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = 1 + 2·x1 + x2
POL(app(x1, x2)) = x1 + x2
POL(nil) = 0
POL(reverse(x1)) = x1
POL(shuffle(x1)) = 2 + 2·x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
shuffle(add(n, x)) → add(n, shuffle(reverse(x)))
(4) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
reverse(nil) → nil
reverse(add(n, x)) → app(reverse(x), add(n, nil))
Q is empty.
(5) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = x1 + x2
POL(app(x1, x2)) = x1 + x2
POL(nil) = 0
POL(reverse(x1)) = 1 + x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
reverse(nil) → nil
(6) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
reverse(add(n, x)) → app(reverse(x), add(n, nil))
Q is empty.
(7) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = 1 + 2·x1 + x2
POL(app(x1, x2)) = x1 + x2
POL(nil) = 0
POL(reverse(x1)) = 2·x1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
reverse(add(n, x)) → app(reverse(x), add(n, nil))
(8) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
Q is empty.
(9) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = 1 + 2·x1 + x2
POL(app(x1, x2)) = 2 + 2·x1 + x2
POL(nil) = 1
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
app(nil, y) → y
app(add(n, x), y) → add(n, app(x, y))
(10) Obligation:
Q restricted rewrite system:
R is empty.
Q is empty.
(11) RisEmptyProof (EQUIVALENT transformation)
The TRS R is empty. Hence, termination is trivially proven.
(12) TRUE
(13) RisEmptyProof (EQUIVALENT transformation)
The TRS R is empty. Hence, termination is trivially proven.
(14) TRUE
(15) RisEmptyProof (EQUIVALENT transformation)
The TRS R is empty. Hence, termination is trivially proven.
(16) TRUE
(17) QTRSRRRProof (EQUIVALENT transformation)
Used ordering:
Polynomial interpretation [POLO]:
POL(add(x1, x2)) = x1 + x2
POL(app(x1, x2)) = 1 + x1 + x2
POL(nil) = 0
With this ordering the following rules can be removed by the rule removal processor [LPAR04] because they are oriented strictly:
app(nil, y) → y
(18) Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:
app(add(n, x), y) → add(n, app(x, y))
Q is empty.