R
↳Dependency Pair Analysis
F(.(nil, y)) -> F(y)
F(.(.(x, y), z)) -> F(.(x, .(y, z)))
G(.(x, nil)) -> G(x)
G(.(x, .(y, z))) -> G(.(.(x, y), z))
R
↳DPs
→DP Problem 1
↳Argument Filtering and Ordering
→DP Problem 2
↳FwdInst
F(.(.(x, y), z)) -> F(.(x, .(y, z)))
F(.(nil, y)) -> F(y)
f(nil) -> nil
f(.(nil, y)) -> .(nil, f(y))
f(.(.(x, y), z)) -> f(.(x, .(y, z)))
g(nil) -> nil
g(.(x, nil)) -> .(g(x), nil)
g(.(x, .(y, z))) -> g(.(.(x, y), z))
innermost
F(.(.(x, y), z)) -> F(.(x, .(y, z)))
F(.(nil, y)) -> F(y)
trivial
F(x1) -> F(x1)
.(x1, x2) -> .(x1, x2)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 3
↳Dependency Graph
→DP Problem 2
↳FwdInst
f(nil) -> nil
f(.(nil, y)) -> .(nil, f(y))
f(.(.(x, y), z)) -> f(.(x, .(y, z)))
g(nil) -> nil
g(.(x, nil)) -> .(g(x), nil)
g(.(x, .(y, z))) -> g(.(.(x, y), z))
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Forward Instantiation Transformation
G(.(x, .(y, z))) -> G(.(.(x, y), z))
G(.(x, nil)) -> G(x)
f(nil) -> nil
f(.(nil, y)) -> .(nil, f(y))
f(.(.(x, y), z)) -> f(.(x, .(y, z)))
g(nil) -> nil
g(.(x, nil)) -> .(g(x), nil)
g(.(x, .(y, z))) -> g(.(.(x, y), z))
innermost
two new Dependency Pairs are created:
G(.(x, nil)) -> G(x)
G(.(.(x'', nil), nil)) -> G(.(x'', nil))
G(.(.(x'', .(y'', z'')), nil)) -> G(.(x'', .(y'', z'')))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳FwdInst
→DP Problem 4
↳Forward Instantiation Transformation
G(.(.(x'', .(y'', z'')), nil)) -> G(.(x'', .(y'', z'')))
G(.(.(x'', nil), nil)) -> G(.(x'', nil))
G(.(x, .(y, z))) -> G(.(.(x, y), z))
f(nil) -> nil
f(.(nil, y)) -> .(nil, f(y))
f(.(.(x, y), z)) -> f(.(x, .(y, z)))
g(nil) -> nil
g(.(x, nil)) -> .(g(x), nil)
g(.(x, .(y, z))) -> g(.(.(x, y), z))
innermost
three new Dependency Pairs are created:
G(.(x, .(y, z))) -> G(.(.(x, y), z))
G(.(x'', .(y0, .(y'', z'')))) -> G(.(.(x'', y0), .(y'', z'')))
G(.(x', .(nil, nil))) -> G(.(.(x', nil), nil))
G(.(x', .(.(y'''', z''''), nil))) -> G(.(.(x', .(y'''', z'''')), nil))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳FwdInst
→DP Problem 4
↳FwdInst
...
→DP Problem 5
↳Remaining Obligation(s)
G(.(x', .(.(y'''', z''''), nil))) -> G(.(.(x', .(y'''', z'''')), nil))
G(.(.(x'', nil), nil)) -> G(.(x'', nil))
G(.(x', .(nil, nil))) -> G(.(.(x', nil), nil))
G(.(x'', .(y0, .(y'', z'')))) -> G(.(.(x'', y0), .(y'', z'')))
G(.(.(x'', .(y'', z'')), nil)) -> G(.(x'', .(y'', z'')))
f(nil) -> nil
f(.(nil, y)) -> .(nil, f(y))
f(.(.(x, y), z)) -> f(.(x, .(y, z)))
g(nil) -> nil
g(.(x, nil)) -> .(g(x), nil)
g(.(x, .(y, z))) -> g(.(.(x, y), z))
innermost