0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
APP(app(append, app(app(cons, h), t)), l) → APP(app(cons, h), app(app(append, t), l))
APP(app(append, app(app(cons, h), t)), l) → APP(app(append, t), l)
APP(app(append, app(app(cons, h), t)), l) → APP(append, t)
APP(app(map, f), app(app(cons, h), t)) → APP(app(cons, app(f, h)), app(app(map, f), t))
APP(app(map, f), app(app(cons, h), t)) → APP(cons, app(f, h))
APP(app(map, f), app(app(cons, h), t)) → APP(f, h)
APP(app(map, f), app(app(cons, h), t)) → APP(app(map, f), t)
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l1), app(app(append, l2), l3))
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l2), l3)
APP(app(append, app(app(append, l1), l2)), l3) → APP(append, l2)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(append, app(app(map, f), l1)), app(app(map, f), l2))
APP(app(map, f), app(app(append, l1), l2)) → APP(append, app(app(map, f), l1))
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l1)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l2)
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l1), app(app(append, l2), l3))
APP(app(append, app(app(cons, h), t)), l) → APP(app(append, t), l)
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l2), l3)
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l1), app(app(append, l2), l3))
APP(app(append, app(app(cons, h), t)), l) → APP(app(append, t), l)
APP(app(append, app(app(append, l1), l2)), l3) → APP(app(append, l2), l3)
append > [app2, cons]
nil > [app2, cons]
app2: [1,2]
append: []
cons: []
nil: []
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
APP(app(map, f), app(app(cons, h), t)) → APP(app(map, f), t)
APP(app(map, f), app(app(cons, h), t)) → APP(f, h)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l1)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l2)
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(map, f), app(app(cons, h), t)) → APP(f, h)
cons > app1
cons > map
app1: [1]
map: []
cons: []
append: []
APP(app(map, f), app(app(cons, h), t)) → APP(app(map, f), t)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l1)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l2)
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(map, f), app(app(cons, h), t)) → APP(app(map, f), t)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l1)
APP(app(map, f), app(app(append, l1), l2)) → APP(app(map, f), l2)
map > [app2, cons, append]
app2: [1,2]
map: []
cons: []
append: []
app(app(append, nil), l) → l
app(app(append, app(app(cons, h), t)), l) → app(app(cons, h), app(app(append, t), l))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, h), t)) → app(app(cons, app(f, h)), app(app(map, f), t))
app(app(append, app(app(append, l1), l2)), l3) → app(app(append, l1), app(app(append, l2), l3))
app(app(map, f), app(app(append, l1), l2)) → app(app(append, app(app(map, f), l1)), app(app(map, f), l2))