Term Rewriting System R:
[x, y]
fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)

Innermost Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

FAC(0) -> 1'
FAC(s(x)) -> *'(s(x), fac(x))
FAC(s(x)) -> FAC(x)
FLOOP(s(x), y) -> FLOOP(x, *(s(x), y))
FLOOP(s(x), y) -> *'(s(x), y)
*'(x, s(y)) -> +'(*(x, y), x)
*'(x, s(y)) -> *'(x, y)
+'(x, s(y)) -> +'(x, y)

Furthermore, R contains four SCCs.


   R
DPs
       →DP Problem 1
Forward Instantiation Transformation
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

+'(x, s(y)) -> +'(x, y)


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

+'(x, s(y)) -> +'(x, y)
one new Dependency Pair is created:

+'(x'', s(s(y''))) -> +'(x'', s(y''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
           →DP Problem 5
Forward Instantiation Transformation
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

+'(x'', s(s(y''))) -> +'(x'', s(y''))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

+'(x'', s(s(y''))) -> +'(x'', s(y''))
one new Dependency Pair is created:

+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
           →DP Problem 5
FwdInst
             ...
               →DP Problem 6
Argument Filtering and Ordering
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




The following dependency pair can be strictly oriented:

+'(x'''', s(s(s(y'''')))) -> +'(x'''', s(s(y'''')))


There are no usable rules for innermost w.r.t. to the AFS that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
+'(x1, x2) -> +'(x1, x2)
s(x1) -> s(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
AFS


Dependency Pair:


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
Forward Instantiation Transformation
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

*'(x, s(y)) -> *'(x, y)


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

*'(x, s(y)) -> *'(x, y)
one new Dependency Pair is created:

*'(x'', s(s(y''))) -> *'(x'', s(y''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
           →DP Problem 8
Forward Instantiation Transformation
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

*'(x'', s(s(y''))) -> *'(x'', s(y''))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

*'(x'', s(s(y''))) -> *'(x'', s(y''))
one new Dependency Pair is created:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
           →DP Problem 8
FwdInst
             ...
               →DP Problem 9
Argument Filtering and Ordering
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS


Dependency Pair:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




The following dependency pair can be strictly oriented:

*'(x'''', s(s(s(y'''')))) -> *'(x'''', s(s(y'''')))


There are no usable rules for innermost w.r.t. to the AFS that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
*'(x1, x2) -> *'(x1, x2)
s(x1) -> s(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
AFS


Dependency Pair:


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
Forward Instantiation Transformation
       →DP Problem 4
AFS


Dependency Pair:

FAC(s(x)) -> FAC(x)


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

FAC(s(x)) -> FAC(x)
one new Dependency Pair is created:

FAC(s(s(x''))) -> FAC(s(x''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
           →DP Problem 11
Forward Instantiation Transformation
       →DP Problem 4
AFS


Dependency Pair:

FAC(s(s(x''))) -> FAC(s(x''))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




On this DP problem, a Forward Instantiation SCC transformation can be performed.
As a result of transforming the rule

FAC(s(s(x''))) -> FAC(s(x''))
one new Dependency Pair is created:

FAC(s(s(s(x'''')))) -> FAC(s(s(x'''')))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
           →DP Problem 11
FwdInst
             ...
               →DP Problem 12
Argument Filtering and Ordering
       →DP Problem 4
AFS


Dependency Pair:

FAC(s(s(s(x'''')))) -> FAC(s(s(x'''')))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




The following dependency pair can be strictly oriented:

FAC(s(s(s(x'''')))) -> FAC(s(s(x'''')))


There are no usable rules for innermost w.r.t. to the AFS that need to be oriented.
Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
trivial

resulting in one new DP problem.
Used Argument Filtering System:
FAC(x1) -> FAC(x1)
s(x1) -> s(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
AFS


Dependency Pair:


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
Argument Filtering and Ordering


Dependency Pair:

FLOOP(s(x), y) -> FLOOP(x, *(s(x), y))


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




The following dependency pair can be strictly oriented:

FLOOP(s(x), y) -> FLOOP(x, *(s(x), y))


The following usable rules for innermost w.r.t. to the AFS can be oriented:

*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))


Used ordering: Lexicographic Path Order with Non-Strict Precedence with Quasi Precedence:
FLOOP > * > + > s

resulting in one new DP problem.
Used Argument Filtering System:
FLOOP(x1, x2) -> FLOOP(x1, x2)
s(x1) -> s(x1)
*(x1, x2) -> *(x1, x2)
+(x1, x2) -> +(x1, x2)


   R
DPs
       →DP Problem 1
FwdInst
       →DP Problem 2
FwdInst
       →DP Problem 3
FwdInst
       →DP Problem 4
AFS
           →DP Problem 14
Dependency Graph


Dependency Pair:


Rules:


fac(0) -> 1
fac(s(x)) -> *(s(x), fac(x))
fac(0) -> s(0)
floop(0, y) -> y
floop(s(x), y) -> floop(x, *(s(x), y))
*(x, 0) -> 0
*(x, s(y)) -> +(*(x, y), x)
+(x, 0) -> x
+(x, s(y)) -> s(+(x, y))
1 -> s(0)


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.

Innermost Termination of R successfully shown.
Duration:
0:00 minutes