R
↳Dependency Pair Analysis
FIB(s(s(x))) -> SP(g(x))
FIB(s(s(x))) -> G(x)
G(s(x)) -> NP(g(x))
G(s(x)) -> G(x)
SP(pair(x, y)) -> +'(x, y)
NP(pair(x, y)) -> +'(x, y)
+'(x, s(y)) -> +'(x, y)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
+'(x, s(y)) -> +'(x, y)
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
one new Dependency Pair is created:
+'(x, s(y)) -> +'(x, y)
+'(x'', s(s(y''))) -> +'(x'', s(y''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
+'(x'', s(s(y''))) -> +'(x'', s(y''))
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
one new Dependency Pair is created:
+'(x'', s(s(y''))) -> +'(x'', s(y''))
+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 2
↳FwdInst
+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))
POL(s(x1)) = 1 + x1 POL(+'(x1, x2)) = 1 + x1 + x2
+'(x1, x2) -> +'(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 3
↳FwdInst
...
→DP Problem 5
↳Dependency Graph
→DP Problem 2
↳FwdInst
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Forward Instantiation Transformation
G(s(x)) -> G(x)
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
one new Dependency Pair is created:
G(s(x)) -> G(x)
G(s(s(x''))) -> G(s(x''))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳Forward Instantiation Transformation
G(s(s(x''))) -> G(s(x''))
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
one new Dependency Pair is created:
G(s(s(x''))) -> G(s(x''))
G(s(s(s(x'''')))) -> G(s(s(x'''')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 7
↳Argument Filtering and Ordering
G(s(s(s(x'''')))) -> G(s(s(x'''')))
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost
G(s(s(s(x'''')))) -> G(s(s(x'''')))
POL(G(x1)) = 1 + x1 POL(s(x1)) = 1 + x1
G(x1) -> G(x1)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 6
↳FwdInst
...
→DP Problem 8
↳Dependency Graph
fib(0) -> 0
fib(s(0)) -> s(0)
fib(s(s(0))) -> s(0)
fib(s(s(x))) -> sp(g(x))
g(0) -> pair(s(0), 0)
g(s(0)) -> pair(s(0), s(0))
g(s(x)) -> np(g(x))
sp(pair(x, y)) -> +(x, y)
np(pair(x, y)) -> pair(+(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
innermost