R
↳Dependency Pair Analysis
ADMIT(x, .(u, .(v, .(w, z)))) -> COND(=(sum(x, u, v), w), .(u, .(v, .(w, admit(carry(x, u, v), z)))))
ADMIT(x, .(u, .(v, .(w, z)))) -> ADMIT(carry(x, u, v), z)
R
↳DPs
→DP Problem 1
↳Instantiation Transformation
ADMIT(x, .(u, .(v, .(w, z)))) -> ADMIT(carry(x, u, v), z)
admit(x, nil) -> nil
admit(x, .(u, .(v, .(w, z)))) -> cond(=(sum(x, u, v), w), .(u, .(v, .(w, admit(carry(x, u, v), z)))))
cond(true, y) -> y
innermost
one new Dependency Pair is created:
ADMIT(x, .(u, .(v, .(w, z)))) -> ADMIT(carry(x, u, v), z)
ADMIT(carry(x'', u''', v''), .(u'', .(v0, .(w, z'')))) -> ADMIT(carry(carry(x'', u''', v''), u'', v0), z'')
R
↳DPs
→DP Problem 1
↳Inst
→DP Problem 2
↳Instantiation Transformation
ADMIT(carry(x'', u''', v''), .(u'', .(v0, .(w, z'')))) -> ADMIT(carry(carry(x'', u''', v''), u'', v0), z'')
admit(x, nil) -> nil
admit(x, .(u, .(v, .(w, z)))) -> cond(=(sum(x, u, v), w), .(u, .(v, .(w, admit(carry(x, u, v), z)))))
cond(true, y) -> y
innermost
one new Dependency Pair is created:
ADMIT(carry(x'', u''', v''), .(u'', .(v0, .(w, z'')))) -> ADMIT(carry(carry(x'', u''', v''), u'', v0), z'')
ADMIT(carry(carry(x'''', u'''''', v''''), u''''', v''0), .(u''1, .(v0'', .(w, z'''')))) -> ADMIT(carry(carry(carry(x'''', u'''''', v''''), u''''', v''0), u''1, v0''), z'''')
R
↳DPs
→DP Problem 1
↳Inst
→DP Problem 2
↳Inst
...
→DP Problem 3
↳Polynomial Ordering
ADMIT(carry(carry(x'''', u'''''', v''''), u''''', v''0), .(u''1, .(v0'', .(w, z'''')))) -> ADMIT(carry(carry(carry(x'''', u'''''', v''''), u''''', v''0), u''1, v0''), z'''')
admit(x, nil) -> nil
admit(x, .(u, .(v, .(w, z)))) -> cond(=(sum(x, u, v), w), .(u, .(v, .(w, admit(carry(x, u, v), z)))))
cond(true, y) -> y
innermost
ADMIT(carry(carry(x'''', u'''''', v''''), u''''', v''0), .(u''1, .(v0'', .(w, z'''')))) -> ADMIT(carry(carry(carry(x'''', u'''''', v''''), u''''', v''0), u''1, v0''), z'''')
POL(carry(x1, x2, x3)) = 0 POL(.(x1, x2)) = x1 + x2 POL(w) = 1 POL(ADMIT(x1, x2)) = x2
R
↳DPs
→DP Problem 1
↳Inst
→DP Problem 2
↳Inst
...
→DP Problem 4
↳Dependency Graph
admit(x, nil) -> nil
admit(x, .(u, .(v, .(w, z)))) -> cond(=(sum(x, u, v), w), .(u, .(v, .(w, admit(carry(x, u, v), z)))))
cond(true, y) -> y
innermost