R
↳Dependency Pair Analysis
+'(x, s(y)) -> +'(x, y)
*'(x, s(y)) -> +'(*(x, y), x)
*'(x, s(y)) -> *'(x, y)
GE(s(x), s(y)) -> GE(x, y)
-'(s(x), s(y)) -> -'(x, y)
FACT(x) -> IFFACT(x, ge(x, s(s(0))))
FACT(x) -> GE(x, s(s(0)))
IFFACT(x, true) -> *'(x, fact(-(x, s(0))))
IFFACT(x, true) -> FACT(-(x, s(0)))
IFFACT(x, true) -> -'(x, s(0))
R
↳DPs
→DP Problem 1
↳Argument Filtering and Ordering
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
+'(x, s(y)) -> +'(x, y)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
+'(x, s(y)) -> +'(x, y)
POL(s(x1)) = 1 + x1 POL(+'(x1, x2)) = x1 + x2
+'(x1, x2) -> +'(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 6
↳Dependency Graph
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳Argument Filtering and Ordering
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
GE(s(x), s(y)) -> GE(x, y)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
GE(s(x), s(y)) -> GE(x, y)
POL(GE(x1, x2)) = x1 + x2 POL(s(x1)) = 1 + x1
GE(x1, x2) -> GE(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 7
↳Dependency Graph
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳Argument Filtering and Ordering
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
-'(s(x), s(y)) -> -'(x, y)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
-'(s(x), s(y)) -> -'(x, y)
POL(-'(x1, x2)) = x1 + x2 POL(s(x1)) = 1 + x1
-'(x1, x2) -> -'(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 8
↳Dependency Graph
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳Argument Filtering and Ordering
→DP Problem 5
↳Nar
*'(x, s(y)) -> *'(x, y)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
*'(x, s(y)) -> *'(x, y)
POL(*'(x1, x2)) = x1 + x2 POL(s(x1)) = 1 + x1
*'(x1, x2) -> *'(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 9
↳Dependency Graph
→DP Problem 5
↳Nar
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Narrowing Transformation
IFFACT(x, true) -> FACT(-(x, s(0)))
FACT(x) -> IFFACT(x, ge(x, s(s(0))))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
two new Dependency Pairs are created:
FACT(x) -> IFFACT(x, ge(x, s(s(0))))
FACT(0) -> IFFACT(0, false)
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Narrowing Transformation
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
IFFACT(x, true) -> FACT(-(x, s(0)))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
IFFACT(x, true) -> FACT(-(x, s(0)))
IFFACT(s(x''), true) -> FACT(-(x'', 0))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 11
↳Rewriting Transformation
IFFACT(s(x''), true) -> FACT(-(x'', 0))
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
IFFACT(s(x''), true) -> FACT(-(x'', 0))
IFFACT(s(x''), true) -> FACT(x'')
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 12
↳Forward Instantiation Transformation
IFFACT(s(x''), true) -> FACT(x'')
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
IFFACT(s(x''), true) -> FACT(x'')
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 13
↳Forward Instantiation Transformation
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
FACT(s(x'')) -> IFFACT(s(x''), ge(x'', s(0)))
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(s(x''''''), s(0)))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 14
↳Rewriting Transformation
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(s(x''''''), s(0)))
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(s(x''''''), s(0)))
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(x'''''', 0))
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 15
↳Rewriting Transformation
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(x'''''', 0))
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
one new Dependency Pair is created:
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), ge(x'''''', 0))
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), true)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 16
↳Argument Filtering and Ordering
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), true)
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost
FACT(s(s(x''''''))) -> IFFACT(s(s(x'''''')), true)
POL(FACT(x1)) = 1 + x1 POL(IFFACT(x1, x2)) = x1 + x2 POL(true) = 0 POL(s(x1)) = 1 + x1
FACT(x1) -> FACT(x1)
IFFACT(x1, x2) -> IFFACT(x1, x2)
s(x1) -> s(x1)
R
↳DPs
→DP Problem 1
↳AFS
→DP Problem 2
↳AFS
→DP Problem 3
↳AFS
→DP Problem 4
↳AFS
→DP Problem 5
↳Nar
→DP Problem 10
↳Nar
...
→DP Problem 17
↳Dependency Graph
IFFACT(s(s(x'''')), true) -> FACT(s(x''''))
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
ge(x, 0) -> true
ge(0, s(y)) -> false
ge(s(x), s(y)) -> ge(x, y)
-(x, 0) -> x
-(s(x), s(y)) -> -(x, y)
fact(x) -> iffact(x, ge(x, s(s(0))))
iffact(x, true) -> *(x, fact(-(x, s(0))))
iffact(x, false) -> s(0)
innermost