R
↳Dependency Pair Analysis
EVEN(s(s(x))) -> EVEN(x)
HALF(s(s(x))) -> HALF(x)
PLUS(s(x), y) -> PLUS(x, y)
TIMES(s(x), y) -> IFTIMES(even(s(x)), s(x), y)
TIMES(s(x), y) -> EVEN(s(x))
IFTIMES(true, s(x), y) -> PLUS(times(half(s(x)), y), times(half(s(x)), y))
IFTIMES(true, s(x), y) -> TIMES(half(s(x)), y)
IFTIMES(true, s(x), y) -> HALF(s(x))
IFTIMES(false, s(x), y) -> PLUS(y, times(x, y))
IFTIMES(false, s(x), y) -> TIMES(x, y)
R
↳DPs
→DP Problem 1
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
EVEN(s(s(x))) -> EVEN(x)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
EVEN(s(s(x))) -> EVEN(x)
EVEN(s(s(s(s(x''))))) -> EVEN(s(s(x'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 5
↳Forward Instantiation Transformation
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
EVEN(s(s(s(s(x''))))) -> EVEN(s(s(x'')))
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
EVEN(s(s(s(s(x''))))) -> EVEN(s(s(x'')))
EVEN(s(s(s(s(s(s(x''''))))))) -> EVEN(s(s(s(s(x'''')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 5
↳FwdInst
...
→DP Problem 6
↳Polynomial Ordering
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
EVEN(s(s(s(s(s(s(x''''))))))) -> EVEN(s(s(s(s(x'''')))))
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
EVEN(s(s(s(s(s(s(x''''))))))) -> EVEN(s(s(s(s(x'''')))))
POL(EVEN(x1)) = 1 + x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 5
↳FwdInst
...
→DP Problem 7
↳Dependency Graph
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
HALF(s(s(x))) -> HALF(x)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
HALF(s(s(x))) -> HALF(x)
HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 8
↳Forward Instantiation Transformation
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
HALF(s(s(s(s(x''))))) -> HALF(s(s(x'')))
HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 8
↳FwdInst
...
→DP Problem 9
↳Polynomial Ordering
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
HALF(s(s(s(s(s(s(x''''))))))) -> HALF(s(s(s(s(x'''')))))
POL(HALF(x1)) = 1 + x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 8
↳FwdInst
...
→DP Problem 10
↳Dependency Graph
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳Forward Instantiation Transformation
→DP Problem 4
↳Nar
PLUS(s(x), y) -> PLUS(x, y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
PLUS(s(x), y) -> PLUS(x, y)
PLUS(s(s(x'')), y'') -> PLUS(s(x''), y'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 11
↳Forward Instantiation Transformation
→DP Problem 4
↳Nar
PLUS(s(s(x'')), y'') -> PLUS(s(x''), y'')
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
PLUS(s(s(x'')), y'') -> PLUS(s(x''), y'')
PLUS(s(s(s(x''''))), y'''') -> PLUS(s(s(x'''')), y'''')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 11
↳FwdInst
...
→DP Problem 12
↳Polynomial Ordering
→DP Problem 4
↳Nar
PLUS(s(s(s(x''''))), y'''') -> PLUS(s(s(x'''')), y'''')
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
PLUS(s(s(s(x''''))), y'''') -> PLUS(s(s(x'''')), y'''')
POL(PLUS(x1, x2)) = 1 + x1 POL(s(x1)) = 1 + x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 11
↳FwdInst
...
→DP Problem 13
↳Dependency Graph
→DP Problem 4
↳Nar
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Narrowing Transformation
IFTIMES(false, s(x), y) -> TIMES(x, y)
IFTIMES(true, s(x), y) -> TIMES(half(s(x)), y)
TIMES(s(x), y) -> IFTIMES(even(s(x)), s(x), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
two new Dependency Pairs are created:
TIMES(s(x), y) -> IFTIMES(even(s(x)), s(x), y)
TIMES(s(0), y) -> IFTIMES(false, s(0), y)
TIMES(s(s(x'')), y) -> IFTIMES(even(x''), s(s(x'')), y)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Narrowing Transformation
IFTIMES(true, s(x), y) -> TIMES(half(s(x)), y)
TIMES(s(s(x'')), y) -> IFTIMES(even(x''), s(s(x'')), y)
TIMES(s(0), y) -> IFTIMES(false, s(0), y)
IFTIMES(false, s(x), y) -> TIMES(x, y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
IFTIMES(true, s(x), y) -> TIMES(half(s(x)), y)
IFTIMES(true, s(s(x'')), y) -> TIMES(s(half(x'')), y)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 15
↳Narrowing Transformation
IFTIMES(true, s(s(x'')), y) -> TIMES(s(half(x'')), y)
TIMES(s(0), y) -> IFTIMES(false, s(0), y)
IFTIMES(false, s(x), y) -> TIMES(x, y)
TIMES(s(s(x'')), y) -> IFTIMES(even(x''), s(s(x'')), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
three new Dependency Pairs are created:
TIMES(s(s(x'')), y) -> IFTIMES(even(x''), s(s(x'')), y)
TIMES(s(s(0)), y) -> IFTIMES(true, s(s(0)), y)
TIMES(s(s(s(0))), y) -> IFTIMES(false, s(s(s(0))), y)
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 16
↳Narrowing Transformation
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
TIMES(s(s(s(0))), y) -> IFTIMES(false, s(s(s(0))), y)
TIMES(s(s(0)), y) -> IFTIMES(true, s(s(0)), y)
IFTIMES(false, s(x), y) -> TIMES(x, y)
TIMES(s(0), y) -> IFTIMES(false, s(0), y)
IFTIMES(true, s(s(x'')), y) -> TIMES(s(half(x'')), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
two new Dependency Pairs are created:
IFTIMES(true, s(s(x'')), y) -> TIMES(s(half(x'')), y)
IFTIMES(true, s(s(0)), y) -> TIMES(s(0), y)
IFTIMES(true, s(s(s(s(x')))), y) -> TIMES(s(s(half(x'))), y)
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 17
↳Instantiation Transformation
IFTIMES(true, s(s(s(s(x')))), y) -> TIMES(s(s(half(x'))), y)
TIMES(s(s(s(0))), y) -> IFTIMES(false, s(s(s(0))), y)
IFTIMES(true, s(s(0)), y) -> TIMES(s(0), y)
TIMES(s(s(0)), y) -> IFTIMES(true, s(s(0)), y)
TIMES(s(0), y) -> IFTIMES(false, s(0), y)
IFTIMES(false, s(x), y) -> TIMES(x, y)
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
three new Dependency Pairs are created:
IFTIMES(false, s(x), y) -> TIMES(x, y)
IFTIMES(false, s(0), y'') -> TIMES(0, y'')
IFTIMES(false, s(s(s(0))), y'') -> TIMES(s(s(0)), y'')
IFTIMES(false, s(s(s(s(x'0')))), y'') -> TIMES(s(s(s(x'0'))), y'')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 18
↳Forward Instantiation Transformation
IFTIMES(false, s(s(s(s(x'0')))), y'') -> TIMES(s(s(s(x'0'))), y'')
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
IFTIMES(true, s(s(s(s(x')))), y) -> TIMES(s(s(half(x'))), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
one new Dependency Pair is created:
IFTIMES(false, s(s(s(s(x'0')))), y'') -> TIMES(s(s(s(x'0'))), y'')
IFTIMES(false, s(s(s(s(s(x'''))))), y''') -> TIMES(s(s(s(s(x''')))), y''')
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 19
↳Polynomial Ordering
IFTIMES(false, s(s(s(s(s(x'''))))), y''') -> TIMES(s(s(s(s(x''')))), y''')
IFTIMES(true, s(s(s(s(x')))), y) -> TIMES(s(s(half(x'))), y)
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost
IFTIMES(false, s(s(s(s(s(x'''))))), y''') -> TIMES(s(s(s(s(x''')))), y''')
IFTIMES(true, s(s(s(s(x')))), y) -> TIMES(s(s(half(x'))), y)
half(0) -> 0
half(s(s(x))) -> s(half(x))
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
POL(IF_TIMES(x1, x2, x3)) = x2 POL(TIMES(x1, x2)) = x1 POL(0) = 0 POL(false) = 0 POL(even(x1)) = 0 POL(true) = 0 POL(s(x1)) = 1 + x1 POL(half(x1)) = x1
R
↳DPs
→DP Problem 1
↳FwdInst
→DP Problem 2
↳FwdInst
→DP Problem 3
↳FwdInst
→DP Problem 4
↳Nar
→DP Problem 14
↳Nar
...
→DP Problem 20
↳Dependency Graph
TIMES(s(s(s(s(x')))), y) -> IFTIMES(even(x'), s(s(s(s(x')))), y)
even(0) -> true
even(s(0)) -> false
even(s(s(x))) -> even(x)
half(0) -> 0
half(s(s(x))) -> s(half(x))
plus(0, y) -> y
plus(s(x), y) -> s(plus(x, y))
times(0, y) -> 0
times(s(x), y) -> iftimes(even(s(x)), s(x), y)
iftimes(true, s(x), y) -> plus(times(half(s(x)), y), times(half(s(x)), y))
iftimes(false, s(x), y) -> plus(y, times(x, y))
innermost