YES Termination proof of AProVE_24_mset.ari

(0) Obligation:

Relative term rewrite system:
The relative TRS consists of the following R rules:

minus(x, o) → x
minus(s(x), s(y)) → minus(x, y)
div(0, s(y)) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
divL(x, nil) → x
divL(x, cons(y, xs)) → divL(div(x, y), xs)

The relative TRS consists of the following S rules:

cons(x, cons(y, xs)) → cons(y, cons(x, xs))

(1) RelTRStoRelADPProof (EQUIVALENT transformation)

We upgrade the RelTRS problem to an equivalent Relative ADP Problem [IJCAR24].

(2) Obligation:

Relative ADP Problem with
absolute ADPs:

minus(x, o) → x
minus(s(x), s(y)) → MINUS(x, y)
div(0, s(y)) → 0
div(s(x), s(y)) → s(DIV(minus(x, y), s(y)))
div(s(x), s(y)) → s(div(MINUS(x, y), s(y)))
divL(x, nil) → x
divL(x, cons(y, xs)) → DIVL(div(x, y), xs)
divL(x, cons(y, xs)) → divL(DIV(x, y), xs)

and relative ADPs:

cons(x, cons(y, xs)) → CONS(y, CONS(x, xs))

(3) RelADPDepGraphProof (EQUIVALENT transformation)

We use the relative dependency graph processor [IJCAR24].
The approximation of the Relative Dependency Graph contains:
3 SCCs with nodes from P_abs,
0 Lassos,
Result: This relative DT problem is equivalent to 3 subproblems.

(4) Complex Obligation (AND)

(5) Obligation:

Relative ADP Problem with
absolute ADPs:

minus(s(x), s(y)) → MINUS(x, y)

and relative ADPs:

div(0, s(y)) → 0
divL(x, cons(y, xs)) → divL(div(x, y), xs)
minus(x, o) → x
cons(x, cons(y, xs)) → cons(y, cons(x, xs))
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
divL(x, nil) → x

(6) RelADPCleverAfsProof (SOUND transformation)

We use the first derelatifying processor [IJCAR24].
There are no annotations in relative ADPs, so the relative ADP problem can be transformed into a non-relative DP problem.

Furthermore, We use an argument filter [LPAR04].
Filtering:s_1 = MINUS_2 = 1 o = div_2 = divL_2 = 0 = minus_2 = 1 cons_2 = nil =
Found this filtering by looking at the following order that orders at least one DP strictly:Combined order from the following AFS and order.
MINUS(x1, x2)  =  MINUS(x1)
s(x1)  =  s(x1)
div(x1, x2)  =  div(x1, x2)
minus(x1, x2)  =  minus(x1)
0  =  0
o  =  o

Recursive path order with status [RPO].
Quasi-Precedence:

div2 > s1 > minus1
div2 > 0

Status:
MINUS1: multiset
s1: multiset
div2: [2,1]
minus1: multiset
0: multiset
o: multiset

(7) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MINUS(s0(x)) → MINUS(x)

The TRS R consists of the following rules:

div0(00, s0(y)) → 00
divL0(x, cons0(y, xs)) → divL0(div0(x, y), xs)
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div0(s0(x), s0(y)) → s0(div0(minus(x), s0(y)))
minus(s0(x)) → minus(x)
divL0(x, nil0) → x

Q is empty.
We have to consider all (P,Q,R)-chains.

(8) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.

Strictly oriented rules of the TRS R:

div0(00, s0(y)) → 00
divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 1   
POL(MINUS(x1)) = x1   
POL(cons0(x1, x2)) = 1 + 2·x1 + x2   
POL(div0(x1, x2)) = 1 + x1 + 2·x2   
POL(divL0(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(minus(x1)) = x1   
POL(nil0) = 0   
POL(s0(x1)) = x1   

(9) Obligation:

Q DP problem:
The TRS P consists of the following rules:

MINUS(s0(x)) → MINUS(x)

The TRS R consists of the following rules:

divL0(x, cons0(y, xs)) → divL0(div0(x, y), xs)
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div0(s0(x), s0(y)) → s0(div0(minus(x), s0(y)))
minus(s0(x)) → minus(x)

Q is empty.
We have to consider all (P,Q,R)-chains.

(10) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

MINUS(s0(x)) → MINUS(x)

Strictly oriented rules of the TRS R:

divL0(x, cons0(y, xs)) → divL0(div0(x, y), xs)
minus(s0(x)) → minus(x)

Used ordering: Polynomial interpretation [POLO]:

POL(MINUS(x1)) = x1   
POL(cons0(x1, x2)) = 2 + 2·x1 + x2   
POL(div0(x1, x2)) = 1 + x1 + x2   
POL(divL0(x1, x2)) = 2·x1 + 2·x2   
POL(minus(x1)) = x1   
POL(s0(x1)) = 1 + x1   

(11) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div0(s0(x), s0(y)) → s0(div0(minus(x), s0(y)))

Q is empty.
We have to consider all (P,Q,R)-chains.

(12) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(13) YES

(14) Obligation:

Relative ADP Problem with
absolute ADPs:

div(s(x), s(y)) → s(DIV(minus(x, y), s(y)))

and relative ADPs:

div(0, s(y)) → 0
divL(x, cons(y, xs)) → divL(div(x, y), xs)
minus(x, o) → x
cons(x, cons(y, xs)) → cons(y, cons(x, xs))
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
minus(s(x), s(y)) → minus(x, y)
divL(x, nil) → x

(15) RelADPCleverAfsProof (SOUND transformation)

We use the first derelatifying processor [IJCAR24].
There are no annotations in relative ADPs, so the relative ADP problem can be transformed into a non-relative DP problem.

Furthermore, We use an argument filter [LPAR04].
Filtering:s_1 = o = div_2 = 1 divL_2 = 0 = minus_2 = 1 cons_2 = DIV_2 = nil =
Found this filtering by looking at the following order that orders at least one DP strictly:Combined order from the following AFS and order.
DIV(x1, x2)  =  DIV(x1, x2)
s(x1)  =  s(x1)
minus(x1, x2)  =  x1
o  =  o
div(x1, x2)  =  div(x1)
0  =  0

Recursive path order with status [RPO].
Quasi-Precedence:

[s1, div1, 0] > DIV2

Status:
DIV2: multiset
s1: [1]
o: multiset
div1: [1]
0: multiset

(16) Obligation:

Q DP problem:
The TRS P consists of the following rules:

DIV0(s0(x), s0(y)) → DIV0(minus(x), s0(y))

The TRS R consists of the following rules:

div(00) → 00
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div(s0(x)) → s0(div(minus(x)))
minus(s0(x)) → minus(x)
divL0(x, nil0) → x

Q is empty.
We have to consider all (P,Q,R)-chains.

(17) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.

Strictly oriented rules of the TRS R:

divL0(x, cons0(y, xs)) → divL0(div(x), xs)
divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(DIV0(x1, x2)) = x1 + x2   
POL(cons0(x1, x2)) = 2 + x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = 2 + 2·x1 + x2   
POL(minus(x1)) = x1   
POL(nil0) = 0   
POL(s0(x1)) = x1   

(18) Obligation:

Q DP problem:
The TRS P consists of the following rules:

DIV0(s0(x), s0(y)) → DIV0(minus(x), s0(y))

The TRS R consists of the following rules:

div(00) → 00
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div(s0(x)) → s0(div(minus(x)))
minus(s0(x)) → minus(x)

Q is empty.
We have to consider all (P,Q,R)-chains.

(19) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

DIV0(s0(x), s0(y)) → DIV0(minus(x), s0(y))

Strictly oriented rules of the TRS R:

minus(s0(x)) → minus(x)

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 2   
POL(DIV0(x1, x2)) = x1 + x2   
POL(cons0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(minus(x1)) = x1   
POL(s0(x1)) = 1 + 2·x1   

(20) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

div(00) → 00
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div(s0(x)) → s0(div(minus(x)))

Q is empty.
We have to consider all (P,Q,R)-chains.

(21) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(22) YES

(23) Obligation:

Relative ADP Problem with
absolute ADPs:

divL(x, cons(y, xs)) → DIVL(div(x, y), xs)

and relative ADPs:

div(0, s(y)) → 0
divL(x, cons(y, xs)) → divL(div(x, y), xs)
minus(x, o) → x
cons(x, cons(y, xs)) → cons(y, cons(x, xs))
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
minus(s(x), s(y)) → minus(x, y)
divL(x, nil) → x

(24) RelADPCleverAfsProof (SOUND transformation)

We use the first derelatifying processor [IJCAR24].
There are no annotations in relative ADPs, so the relative ADP problem can be transformed into a non-relative DP problem.

Furthermore, We use an argument filter [LPAR04].
Filtering:s_1 = o = div_2 = 0 divL_2 = 0 = minus_2 = 1 cons_2 = DIVL_2 = nil =
Found this filtering by looking at the following order that orders at least one DP strictly:Combined order from the following AFS and order.
DIVL(x1, x2)  =  DIVL(x1, x2)
cons(x1, x2)  =  cons(x1, x2)
div(x1, x2)  =  x2
0  =  0
s(x1)  =  x1
minus(x1, x2)  =  x1
o  =  o

Recursive path order with status [RPO].
Quasi-Precedence:

cons2 > DIVL2 > 0
o > 0

Status:
DIVL2: multiset
cons2: [1,2]
0: multiset
o: multiset

(25) Obligation:

Q DP problem:
The TRS P consists of the following rules:

DIVL0(x, cons0(y, xs)) → DIVL0(div(y), xs)

The TRS R consists of the following rules:

div(s0(y)) → 00
divL0(x, cons0(y, xs)) → divL0(div(y), xs)
minus(x) → x
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div(s0(y)) → s0(div(s0(y)))
minus(s0(x)) → minus(x)
divL0(x, nil0) → x

Q is empty.
We have to consider all (P,Q,R)-chains.

(26) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

DIVL0(x, cons0(y, xs)) → DIVL0(div(y), xs)

Strictly oriented rules of the TRS R:

divL0(x, cons0(y, xs)) → divL0(div(y), xs)
minus(x) → x
divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(DIVL0(x1, x2)) = 2·x1 + 2·x2   
POL(cons0(x1, x2)) = 1 + 2·x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = 2 + x1 + 2·x2   
POL(minus(x1)) = 2 + 2·x1   
POL(nil0) = 0   
POL(s0(x1)) = x1   

(27) Obligation:

Q DP problem:
P is empty.
The TRS R consists of the following rules:

div(s0(y)) → 00
cons0(x, cons0(y, xs)) → cons0(y, cons0(x, xs))
div(s0(y)) → s0(div(s0(y)))
minus(s0(x)) → minus(x)

Q is empty.
We have to consider all (P,Q,R)-chains.

(28) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(29) YES