The rewrite relation of the following equational TRS is considered.
The following set of (strict) dependency pairs is constructed for the TRS.
app#(x,plus(y,z)) |
→ |
app#(x,y) |
(19) |
app#(x,plus(y,z)) |
→ |
app#(x,z) |
(20) |
app#(x,app(plus(y,z),t)) |
→ |
app#(plus(app(x,y),app(x,z)),t) |
(21) |
app#(x,app(plus(y,z),t)) |
→ |
app#(x,y) |
(22) |
app#(x,app(plus(y,z),t)) |
→ |
app#(x,z) |
(23) |
app#(app(x,empty),ext) |
→ |
app#(empty,ext) |
(24) |
app#(app(x,app(empty,z)),ext) |
→ |
app#(app(empty,z),ext) |
(25) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(plus(app(x,y),app(x,z)),ext) |
(26) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(x,y) |
(27) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(x,z) |
(28) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(app(plus(app(x,y),app(x,z)),t),ext) |
(29) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(plus(app(x,y),app(x,z)),t) |
(30) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(x,y) |
(31) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(x,z) |
(32) |
The extended rules of the TRS
app(app(x,empty),ext) |
→ |
app(empty,ext) |
(33) |
app(app(x,app(empty,z)),ext) |
→ |
app(app(empty,z),ext) |
(34) |
app(app(x,plus(y,z)),ext) |
→ |
app(plus(app(x,y),app(x,z)),ext) |
(35) |
app(app(x,app(plus(y,z),t)),ext) |
→ |
app(app(plus(app(x,y),app(x,z)),t),ext) |
(36) |
give rise to even more dependency pairs (by sharping the root symbols of each rule).
Finiteness for all DPs in combination with the equational DPs is proven as follows.
app(app(x,app(empty,z)),ext) |
→ |
app(app(empty,z),ext) |
(34) |
app(app(x,empty),ext) |
→ |
app(empty,ext) |
(33) |
app(x,empty) |
→ |
empty |
(7) |
app(app(x,plus(y,z)),ext) |
→ |
app(plus(app(x,y),app(x,z)),ext) |
(35) |
app(app(x,app(plus(y,z),t)),ext) |
→ |
app(app(plus(app(x,y),app(x,z)),t),ext) |
(36) |
app(x,app(plus(y,z),t)) |
→ |
app(plus(app(x,y),app(x,z)),t) |
(10) |
app(x,app(empty,z)) |
→ |
app(empty,z) |
(8) |
app(x,plus(y,z)) |
→ |
plus(app(x,y),app(x,z)) |
(9) |
app(app(x,y),z) |
→ |
app(x,app(y,z)) |
(14) |
app(x,y) |
→ |
app(y,x) |
(12) |
plus(plus(x,y),z) |
→ |
plus(x,plus(y,z)) |
(15) |
plus(x,y) |
→ |
plus(y,x) |
(13) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
app#(x,plus(y,z)) |
→ |
app#(x,y) |
(19) |
app#(x,plus(y,z)) |
→ |
app#(x,z) |
(20) |
app#(x,app(plus(y,z),t)) |
→ |
app#(x,y) |
(22) |
app#(x,app(plus(y,z),t)) |
→ |
app#(x,z) |
(23) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(x,y) |
(27) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(x,z) |
(28) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(x,y) |
(31) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(x,z) |
(32) |
could be deleted.
app(app(x,app(empty,z)),ext) |
→ |
app(app(empty,z),ext) |
(34) |
app(app(x,empty),ext) |
→ |
app(empty,ext) |
(33) |
app(x,empty) |
→ |
empty |
(7) |
app(app(x,plus(y,z)),ext) |
→ |
app(plus(app(x,y),app(x,z)),ext) |
(35) |
app(app(x,app(plus(y,z),t)),ext) |
→ |
app(app(plus(app(x,y),app(x,z)),t),ext) |
(36) |
app(x,app(plus(y,z),t)) |
→ |
app(plus(app(x,y),app(x,z)),t) |
(10) |
app(x,app(empty,z)) |
→ |
app(empty,z) |
(8) |
app(x,plus(y,z)) |
→ |
plus(app(x,y),app(x,z)) |
(9) |
app(app(x,y),z) |
→ |
app(x,app(y,z)) |
(14) |
app(x,y) |
→ |
app(y,x) |
(12) |
plus(plus(x,y),z) |
→ |
plus(x,plus(y,z)) |
(15) |
plus(x,y) |
→ |
plus(y,x) |
(13) |
(w.r.t. the implicit argument filter of the reduction pair),
the
pairs
app#(x,app(plus(y,z),t)) |
→ |
app#(plus(app(x,y),app(x,z)),t) |
(21) |
app#(app(x,empty),ext) |
→ |
app#(empty,ext) |
(24) |
app#(app(x,app(empty,z)),ext) |
→ |
app#(app(empty,z),ext) |
(25) |
app#(app(x,plus(y,z)),ext) |
→ |
app#(plus(app(x,y),app(x,z)),ext) |
(26) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(app(plus(app(x,y),app(x,z)),t),ext) |
(29) |
app#(app(x,app(plus(y,z),t)),ext) |
→ |
app#(plus(app(x,y),app(x,z)),t) |
(30) |
app#(app(x,y),z) |
→ |
app#(y,z) |
(18) |
could be deleted.