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
↳Argument Filtering and 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'''')
trivial
ADMIT(x1, x2) -> ADMIT(x1, x2)
carry(x1, x2, x3) -> x1
.(x1, x2) -> .(x1, 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