Term Rewriting System R:
[y, x, z]
div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))

Innermost Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

DIV(x, y) -> QUOT(x, y, y)
QUOT(s(x), s(y), z) -> QUOT(x, y, z)
QUOT(x, 0, s(z)) -> DIV(x, s(z))

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Instantiation Transformation


Dependency Pairs:

QUOT(x, 0, s(z)) -> DIV(x, s(z))
QUOT(s(x), s(y), z) -> QUOT(x, y, z)
DIV(x, y) -> QUOT(x, y, y)


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

DIV(x, y) -> QUOT(x, y, y)
one new Dependency Pair is created:

DIV(x'', s(z'')) -> QUOT(x'', s(z''), s(z''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
Forward Instantiation Transformation


Dependency Pairs:

QUOT(s(x), s(y), z) -> QUOT(x, y, z)
DIV(x'', s(z'')) -> QUOT(x'', s(z''), s(z''))
QUOT(x, 0, s(z)) -> DIV(x, s(z))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

QUOT(s(x), s(y), z) -> QUOT(x, y, z)
two new Dependency Pairs are created:

QUOT(s(s(x'')), s(s(y'')), z'') -> QUOT(s(x''), s(y''), z'')
QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 3
Forward Instantiation Transformation


Dependency Pairs:

QUOT(x, 0, s(z)) -> DIV(x, s(z))
QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))
QUOT(s(s(x'')), s(s(y'')), z'') -> QUOT(s(x''), s(y''), z'')
DIV(x'', s(z'')) -> QUOT(x'', s(z''), s(z''))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

DIV(x'', s(z'')) -> QUOT(x'', s(z''), s(z''))
two new Dependency Pairs are created:

DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 4
Forward Instantiation Transformation


Dependency Pairs:

DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))
QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))
QUOT(s(s(x'')), s(s(y'')), z'') -> QUOT(s(x''), s(y''), z'')
DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
QUOT(x, 0, s(z)) -> DIV(x, s(z))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

QUOT(x, 0, s(z)) -> DIV(x, s(z))
two new Dependency Pairs are created:

QUOT(s(s(x'''''')), 0, s(s(y''''''))) -> DIV(s(s(x'''''')), s(s(y'''''')))
QUOT(s(x''''''), 0, s(0)) -> DIV(s(x''''''), s(0))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 5
Forward Instantiation Transformation


Dependency Pairs:

QUOT(s(x''''''), 0, s(0)) -> DIV(s(x''''''), s(0))
QUOT(s(s(x'')), s(s(y'')), z'') -> QUOT(s(x''), s(y''), z'')
DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
QUOT(s(s(x'''''')), 0, s(s(y''''''))) -> DIV(s(s(x'''''')), s(s(y'''''')))
QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))
DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

QUOT(s(s(x'')), s(s(y'')), z'') -> QUOT(s(x''), s(y''), z'')
two new Dependency Pairs are created:

QUOT(s(s(s(x''''))), s(s(s(y''''))), z'''') -> QUOT(s(s(x'''')), s(s(y'''')), z'''')
QUOT(s(s(x'''')), s(s(0)), s(z'''')) -> QUOT(s(x''''), s(0), s(z''''))

The transformation is resulting in one new DP problem:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 6
Forward Instantiation Transformation


Dependency Pairs:

QUOT(s(s(x'''')), s(s(0)), s(z'''')) -> QUOT(s(x''''), s(0), s(z''''))
QUOT(s(s(s(x''''))), s(s(s(y''''))), z'''') -> QUOT(s(s(x'''')), s(s(y'''')), z'''')
DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
QUOT(s(s(x'''''')), 0, s(s(y''''''))) -> DIV(s(s(x'''''')), s(s(y'''''')))
QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))
DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))
QUOT(s(x''''''), 0, s(0)) -> DIV(s(x''''''), s(0))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




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

QUOT(s(x''), s(0), s(z'')) -> QUOT(x'', 0, s(z''))
two new Dependency Pairs are created:

QUOT(s(s(s(x''''''''))), s(0), s(s(y''''''''))) -> QUOT(s(s(x'''''''')), 0, s(s(y'''''''')))
QUOT(s(s(x'''''''')), s(0), s(0)) -> QUOT(s(x''''''''), 0, s(0))

The transformation is resulting in two new DP problems:



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 7
Polynomial Ordering


Dependency Pairs:

DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))
QUOT(s(x''''''), 0, s(0)) -> DIV(s(x''''''), s(0))
QUOT(s(s(x'''''''')), s(0), s(0)) -> QUOT(s(x''''''''), 0, s(0))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




The following dependency pair can be strictly oriented:

QUOT(s(s(x'''''''')), s(0), s(0)) -> QUOT(s(x''''''''), 0, s(0))


There are no usable rules for innermost that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(QUOT(x1, x2, x3))=  x1  
  POL(0)=  0  
  POL(DIV(x1, x2))=  x1  
  POL(s(x1))=  1 + x1  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 9
Dependency Graph


Dependency Pairs:

DIV(s(x''''), s(0)) -> QUOT(s(x''''), s(0), s(0))
QUOT(s(x''''''), 0, s(0)) -> DIV(s(x''''''), s(0))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.


   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 8
Polynomial Ordering


Dependency Pairs:

QUOT(s(s(s(x''''))), s(s(s(y''''))), z'''') -> QUOT(s(s(x'''')), s(s(y'''')), z'''')
DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
QUOT(s(s(x'''''')), 0, s(s(y''''''))) -> DIV(s(s(x'''''')), s(s(y'''''')))
QUOT(s(s(s(x''''''''))), s(0), s(s(y''''''''))) -> QUOT(s(s(x'''''''')), 0, s(s(y'''''''')))
QUOT(s(s(x'''')), s(s(0)), s(z'''')) -> QUOT(s(x''''), s(0), s(z''''))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




The following dependency pairs can be strictly oriented:

QUOT(s(s(s(x''''))), s(s(s(y''''))), z'''') -> QUOT(s(s(x'''')), s(s(y'''')), z'''')
QUOT(s(s(s(x''''''''))), s(0), s(s(y''''''''))) -> QUOT(s(s(x'''''''')), 0, s(s(y'''''''')))
QUOT(s(s(x'''')), s(s(0)), s(z'''')) -> QUOT(s(x''''), s(0), s(z''''))


There are no usable rules for innermost that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(QUOT(x1, x2, x3))=  x1  
  POL(0)=  0  
  POL(DIV(x1, x2))=  x1  
  POL(s(x1))=  1 + x1  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Inst
           →DP Problem 2
FwdInst
             ...
               →DP Problem 10
Dependency Graph


Dependency Pairs:

DIV(s(s(x'''')), s(s(y''''))) -> QUOT(s(s(x'''')), s(s(y'''')), s(s(y'''')))
QUOT(s(s(x'''''')), 0, s(s(y''''''))) -> DIV(s(s(x'''''')), s(s(y'''''')))


Rules:


div(0, y) -> 0
div(x, y) -> quot(x, y, y)
quot(0, s(y), z) -> 0
quot(s(x), s(y), z) -> quot(x, y, z)
quot(x, 0, s(z)) -> s(div(x, s(z)))


Strategy:

innermost




Using the Dependency Graph resulted in no new DP problems.

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