R
↳Dependency Pair Analysis
REV(cons(x, l)) -> REV1(x, l)
REV(cons(x, l)) -> REV2(x, l)
REV1(x, cons(y, l)) -> REV1(y, l)
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV2(x, cons(y, l)) -> REV2(y, l)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
REV1(x, cons(y, l)) -> REV1(y, l)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
one new Dependency Pair is created:
REV1(x, cons(y, l)) -> REV1(y, l)
REV1(x, cons(y0, cons(y'', l''))) -> REV1(y0, cons(y'', l''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
REV1(x, cons(y0, cons(y'', l''))) -> REV1(y0, cons(y'', l''))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
one new Dependency Pair is created:
REV1(x, cons(y0, cons(y'', l''))) -> REV1(y0, cons(y'', l''))
REV1(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV1(y0'', cons(y''0, cons(y'''', l'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 2
↳FwdInst
REV1(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV1(y0'', cons(y''0, cons(y'''', l'''')))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
REV1(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV1(y0'', cons(y''0, cons(y'''', l'''')))
cons > REV1
REV1(x1, x2) -> REV1(x1, x2)
cons(x1, x2) -> cons(x1, x2)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 5
↳Dependency Graph
→DP Problem 2
↳FwdInst
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Forward Instantiation Transformation
REV2(x, cons(y, l)) -> REV2(y, l)
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV(cons(x, l)) -> REV2(x, l)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
one new Dependency Pair is created:
REV(cons(x, l)) -> REV2(x, l)
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Narrowing Transformation
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV2(x, cons(y, l)) -> REV2(y, l)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
two new Dependency Pairs are created:
REV2(x, cons(y, l)) -> REV(cons(x, rev2(y, l)))
REV2(x, cons(y', nil)) -> REV(cons(x, nil))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, rev(cons(y0, rev2(y'', l'')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 7
↳Rewriting Transformation
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, rev(cons(y0, rev2(y'', l'')))))
REV2(x, cons(y, l)) -> REV2(y, l)
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
one new Dependency Pair is created:
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, rev(cons(y0, rev2(y'', l'')))))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 8
↳Forward Instantiation Transformation
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
REV2(x, cons(y, l)) -> REV2(y, l)
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
two new Dependency Pairs are created:
REV2(x, cons(y, l)) -> REV2(y, l)
REV2(x, cons(y0, cons(y'', l''))) -> REV2(y0, cons(y'', l''))
REV2(x, cons(y', cons(y0'', cons(y'''', l'''')))) -> REV2(y', cons(y0'', cons(y'''', l'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 9
↳Forward Instantiation Transformation
REV2(x, cons(y', cons(y0'', cons(y'''', l'''')))) -> REV2(y', cons(y0'', cons(y'''', l'''')))
REV2(x, cons(y0, cons(y'', l''))) -> REV2(y0, cons(y'', l''))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
two new Dependency Pairs are created:
REV(cons(x'', cons(y'', l''))) -> REV2(x'', cons(y'', l''))
REV(cons(x''', cons(y''0, cons(y'''', l'''')))) -> REV2(x''', cons(y''0, cons(y'''', l'''')))
REV(cons(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 10
↳Forward Instantiation Transformation
REV(cons(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
REV2(x, cons(y0, cons(y'', l''))) -> REV2(y0, cons(y'', l''))
REV(cons(x''', cons(y''0, cons(y'''', l'''')))) -> REV2(x''', cons(y''0, cons(y'''', l'''')))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
REV2(x, cons(y', cons(y0'', cons(y'''', l'''')))) -> REV2(y', cons(y0'', cons(y'''', l'''')))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
two new Dependency Pairs are created:
REV2(x, cons(y0, cons(y'', l''))) -> REV2(y0, cons(y'', l''))
REV2(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV2(y0'', cons(y''0, cons(y'''', l'''')))
REV2(x, cons(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 11
↳Argument Filtering and Ordering
REV2(x, cons(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
REV2(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV2(y0'', cons(y''0, cons(y'''', l'''')))
REV2(x, cons(y', cons(y0'', cons(y'''', l'''')))) -> REV2(y', cons(y0'', cons(y'''', l'''')))
REV(cons(x''', cons(y''0, cons(y'''', l'''')))) -> REV2(x''', cons(y''0, cons(y'''', l'''')))
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
REV(cons(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost
REV2(x, cons(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(y0', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
REV2(x, cons(y0'', cons(y''0, cons(y'''', l'''')))) -> REV2(y0'', cons(y''0, cons(y'''', l'''')))
REV2(x, cons(y', cons(y0'', cons(y'''', l'''')))) -> REV2(y', cons(y0'', cons(y'''', l'''')))
REV(cons(x''', cons(y''0, cons(y'''', l'''')))) -> REV2(x''', cons(y''0, cons(y'''', l'''')))
REV(cons(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))) -> REV2(x''', cons(y'''', cons(y0'''', cons(y'''''', l''''''))))
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
trivial
REV2(x1, x2) -> x2
cons(x1, x2) -> cons(x2)
REV(x1) -> x1
rev2(x1, x2) -> x2
rev(x1) -> x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Nar
...
→DP Problem 12
↳Dependency Graph
REV2(x, cons(y0, cons(y'', l''))) -> REV(cons(x, cons(rev1(y0, rev2(y'', l'')), rev2(y0, rev2(y'', l'')))))
rev(nil) -> nil
rev(cons(x, l)) -> cons(rev1(x, l), rev2(x, l))
rev1(0, nil) -> 0
rev1(s(x), nil) -> s(x)
rev1(x, cons(y, l)) -> rev1(y, l)
rev2(x, nil) -> nil
rev2(x, cons(y, l)) -> rev(cons(x, rev2(y, l)))
innermost