R
↳Dependency Pair Analysis
LEQ(s(X), s(Y)) -> LEQ(X, Y)
DIFF(X, Y) -> IF(leq(X, Y), 0, s(diff(p(X), Y)))
DIFF(X, Y) -> LEQ(X, Y)
DIFF(X, Y) -> DIFF(p(X), Y)
DIFF(X, Y) -> P(X)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳Remaining
LEQ(s(X), s(Y)) -> LEQ(X, Y)
p(0) -> 0
p(s(X)) -> X
leq(0, Y) -> true
leq(s(X), 0) -> false
leq(s(X), s(Y)) -> leq(X, Y)
if(true, X, Y) -> X
if(false, X, Y) -> Y
diff(X, Y) -> if(leq(X, Y), 0, s(diff(p(X), Y)))
innermost
one new Dependency Pair is created:
LEQ(s(X), s(Y)) -> LEQ(X, Y)
LEQ(s(s(X'')), s(s(Y''))) -> LEQ(s(X''), s(Y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
→DP Problem 2
↳Remaining
LEQ(s(s(X'')), s(s(Y''))) -> LEQ(s(X''), s(Y''))
p(0) -> 0
p(s(X)) -> X
leq(0, Y) -> true
leq(s(X), 0) -> false
leq(s(X), s(Y)) -> leq(X, Y)
if(true, X, Y) -> X
if(false, X, Y) -> Y
diff(X, Y) -> if(leq(X, Y), 0, s(diff(p(X), Y)))
innermost
one new Dependency Pair is created:
LEQ(s(s(X'')), s(s(Y''))) -> LEQ(s(X''), s(Y''))
LEQ(s(s(s(X''''))), s(s(s(Y'''')))) -> LEQ(s(s(X'''')), s(s(Y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 4
↳Polynomial Ordering
→DP Problem 2
↳Remaining
LEQ(s(s(s(X''''))), s(s(s(Y'''')))) -> LEQ(s(s(X'''')), s(s(Y'''')))
p(0) -> 0
p(s(X)) -> X
leq(0, Y) -> true
leq(s(X), 0) -> false
leq(s(X), s(Y)) -> leq(X, Y)
if(true, X, Y) -> X
if(false, X, Y) -> Y
diff(X, Y) -> if(leq(X, Y), 0, s(diff(p(X), Y)))
innermost
LEQ(s(s(s(X''''))), s(s(s(Y'''')))) -> LEQ(s(s(X'''')), s(s(Y'''')))
POL(LEQ(x1, x2)) = 1 + x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 5
↳Dependency Graph
→DP Problem 2
↳Remaining
p(0) -> 0
p(s(X)) -> X
leq(0, Y) -> true
leq(s(X), 0) -> false
leq(s(X), s(Y)) -> leq(X, Y)
if(true, X, Y) -> X
if(false, X, Y) -> Y
diff(X, Y) -> if(leq(X, Y), 0, s(diff(p(X), Y)))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Remaining Obligation(s)
DIFF(X, Y) -> DIFF(p(X), Y)
p(0) -> 0
p(s(X)) -> X
leq(0, Y) -> true
leq(s(X), 0) -> false
leq(s(X), s(Y)) -> leq(X, Y)
if(true, X, Y) -> X
if(false, X, Y) -> Y
diff(X, Y) -> if(leq(X, Y), 0, s(diff(p(X), Y)))
innermost