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
↳Remaining Obligation(s)
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Remaining Obligation(s)
→DP Problem 4
↳Remaining Obligation(s)
→DP Problem 5
↳Remaining Obligation(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)
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)
-'(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)
*'(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)
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)
R
↳DPs
→DP Problem 1
↳Remaining Obligation(s)
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Remaining Obligation(s)
→DP Problem 4
↳Remaining Obligation(s)
→DP Problem 5
↳Remaining Obligation(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)
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)
-'(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)
*'(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)
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)
R
↳DPs
→DP Problem 1
↳Remaining Obligation(s)
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Remaining Obligation(s)
→DP Problem 4
↳Remaining Obligation(s)
→DP Problem 5
↳Remaining Obligation(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)
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)
-'(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)
*'(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)
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)
R
↳DPs
→DP Problem 1
↳Remaining Obligation(s)
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Remaining Obligation(s)
→DP Problem 4
↳Remaining Obligation(s)
→DP Problem 5
↳Remaining Obligation(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)
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)
-'(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)
*'(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)
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)
R
↳DPs
→DP Problem 1
↳Remaining Obligation(s)
→DP Problem 2
↳Remaining Obligation(s)
→DP Problem 3
↳Remaining Obligation(s)
→DP Problem 4
↳Remaining Obligation(s)
→DP Problem 5
↳Remaining Obligation(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)
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)
-'(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)
*'(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)
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)