YES Termination proof of AProVE_24_mset_c2.ari

(0) Obligation:

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

le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
minus(0, y) → 0
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
ifminus(true, s(x), y) → 0
ifminus(false, s(x), y) → s(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:

consSwap(x, xs) → cons(x, xs)
divL(z, cons(x, xs)) → divL(z, consSwap(x, xs))
consSwap(x, cons(y, xs)) → cons(y, consSwap(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:

le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → LE(x, y)
minus(0, y) → 0
minus(s(x), y) → IFMINUS(le(s(x), y), s(x), y)
minus(s(x), y) → ifminus(LE(s(x), y), s(x), y)
ifminus(true, s(x), y) → 0
ifminus(false, s(x), y) → s(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:

consSwap(x, xs) → cons(x, xs)
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
consSwap(x, cons(y, xs)) → cons(y, CONSSWAP(x, xs))

(3) RelADPDepGraphProof (EQUIVALENT transformation)

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

(4) Complex Obligation (AND)

(5) Obligation:

Relative ADP Problem with
absolute ADPs:

le(s(x), s(y)) → LE(x, y)

and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
divL(z, cons(x, xs)) → divL(z, consSwap(x, xs))
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(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:true = ifminus_3 = 0, 2 divL_2 = false = nil = s_1 = div_2 = 1 LE_2 = 1 le_2 = 0, 1 0 = minus_2 = 1 cons_2 = consSwap_2 =
Found this filtering by looking at the following order that orders at least one DP strictly:Combined order from the following AFS and order.
LE(x1, x2)  =  LE(x1)
s(x1)  =  s(x1)
div(x1, x2)  =  div(x1)
minus(x1, x2)  =  x1
ifminus(x1, x2, x3)  =  x2
le(x1, x2)  =  le
0  =  0
false  =  false
true  =  true

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

[LE1, s1, div1, le, 0, false, true]

Status:
LE1: multiset
s1: multiset
div1: multiset
le: multiset
0: multiset
false: multiset
true: multiset

(7) Obligation:

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

LE(s0(x)) → LE(x)

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
lefalse0
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
divL0(x, nil0) → x
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(minus(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:

lefalse0
divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(LE(x1)) = x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = 2 + x1 + 2·x2   
POL(false0) = 0   
POL(ifminus(x1)) = x1   
POL(le) = 2   
POL(minus(x1)) = x1   
POL(nil0) = 0   
POL(s0(x1)) = 2·x1   
POL(true0) = 2   

(9) Obligation:

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

LE(s0(x)) → LE(x)

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(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 rules of the TRS R:

letrue0

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(LE(x1)) = 2·x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = x1 + 2·x2   
POL(ifminus(x1)) = x1   
POL(le) = 2   
POL(minus(x1)) = x1   
POL(s0(x1)) = x1   
POL(true0) = 1   

(11) Obligation:

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

LE(s0(x)) → LE(x)

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
ifminus(s0(x)) → s0(minus(x))

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

(12) 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:

LE(s0(x)) → LE(x)

Strictly oriented rules of the TRS R:

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

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(LE(x1)) = 2·x1   
POL(cons0(x1, x2)) = 2 + x1 + x2   
POL(consSwap0(x1, x2)) = 2 + x1 + x2   
POL(div(x1)) = 1 + x1   
POL(divL0(x1, x2)) = x1 + 2·x2   
POL(ifminus(x1)) = x1   
POL(le) = 0   
POL(minus(x1)) = x1   
POL(s0(x1)) = 1 + x1   

(13) Obligation:

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

consSwap0(x, xs) → cons0(x, xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
ifminus(s0(x)) → s0(minus(x))

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

(14) PisEmptyProof (EQUIVALENT transformation)

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

(15) YES

(16) Obligation:

Relative ADP Problem with
absolute ADPs:

minus(s(x), y) → IFMINUS(le(s(x), y), s(x), y)
ifminus(false, s(x), y) → s(MINUS(x, y))

and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
divL(z, cons(x, xs)) → divL(z, consSwap(x, xs))
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true

(17) 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:MINUS_2 = 1 true = ifminus_3 = 0, 2 divL_2 = IFMINUS_3 = 2 false = nil = s_1 = div_2 = 1 le_2 = 0, 1 0 = minus_2 = 1 cons_2 = consSwap_2 =
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)
IFMINUS(x1, x2, x3)  =  IFMINUS(x1, x2)
le(x1, x2)  =  le
false  =  false
0  =  0
true  =  true
minus(x1, x2)  =  x1
ifminus(x1, x2, x3)  =  x2
div(x1, x2)  =  x1

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

s1 > [MINUS1, le, false, true] > [IFMINUS2, 0]

Status:
MINUS1: multiset
s1: [1]
IFMINUS2: [2,1]
le: multiset
false: multiset
0: multiset
true: multiset

(18) Obligation:

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

MINUS(s0(x)) → IFMINUS(le, s0(x))
IFMINUS(false0, s0(x)) → MINUS(x)

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
lefalse0
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
divL0(x, nil0) → x
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(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 rules of the TRS R:

divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(IFMINUS(x1, x2)) = x1 + 2·x2   
POL(MINUS(x1)) = 2·x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(false0) = 0   
POL(ifminus(x1)) = x1   
POL(le) = 0   
POL(minus(x1)) = x1   
POL(nil0) = 0   
POL(s0(x1)) = x1   
POL(true0) = 0   

(20) Obligation:

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

MINUS(s0(x)) → IFMINUS(le, s0(x))
IFMINUS(false0, s0(x)) → MINUS(x)

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
lefalse0
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(minus(x))

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

(21) 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:

IFMINUS(false0, s0(x)) → MINUS(x)

Strictly oriented rules of the TRS R:

letrue0

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 2   
POL(IFMINUS(x1, x2)) = 2 + x1 + x2   
POL(MINUS(x1)) = 2 + 2·x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = x1 + 2·x2   
POL(false0) = 2   
POL(ifminus(x1)) = x1   
POL(le) = 2   
POL(minus(x1)) = x1   
POL(s0(x1)) = 2 + 2·x1   
POL(true0) = 1   

(22) Obligation:

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

MINUS(s0(x)) → IFMINUS(le, s0(x))

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
lefalse0
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
ifminus(s0(x)) → s0(minus(x))

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

(23) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(24) TRUE

(25) 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
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
divL(z, cons(x, xs)) → divL(z, consSwap(x, xs))
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(26) 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:true = ifminus_3 = 0, 2 divL_2 = false = nil = s_1 = div_2 = 1 0 = le_2 = 0, 1 minus_2 = 1 cons_2 = consSwap_2 = DIV_2 = 1
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)
s(x1)  =  s(x1)
minus(x1, x2)  =  x1
0  =  0
ifminus(x1, x2, x3)  =  x2
le(x1, x2)  =  le
false  =  false
true  =  true
div(x1, x2)  =  x1

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

[DIV1, s1] > 0 > false
[le, true] > 0 > false

Status:
DIV1: [1]
s1: multiset
0: multiset
le: []
false: multiset
true: multiset

(27) Obligation:

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

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

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
lefalse0
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
divL0(x, nil0) → x
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(minus(x))

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

(28) 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:

lefalse0
divL0(x, nil0) → x

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(DIV(x1)) = 2·x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = 2 + 2·x1 + 2·x2   
POL(false0) = 0   
POL(ifminus(x1)) = x1   
POL(le) = 2   
POL(minus(x1)) = x1   
POL(nil0) = 0   
POL(s0(x1)) = 2·x1   
POL(true0) = 2   

(29) Obligation:

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

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

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
letrue0
ifminus(s0(x)) → s0(minus(x))

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

(30) 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:

letrue0

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 0   
POL(DIV(x1)) = x1   
POL(cons0(x1, x2)) = x1 + x2   
POL(consSwap0(x1, x2)) = x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = x1 + 2·x2   
POL(ifminus(x1)) = x1   
POL(le) = 2   
POL(minus(x1)) = x1   
POL(s0(x1)) = x1   
POL(true0) = 1   

(31) Obligation:

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

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

The TRS R consists of the following rules:

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
divL0(x, cons0(y, xs)) → divL0(div(x), xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
ifminus(s0(x)) → s0(minus(x))

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

(32) 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:

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

Strictly oriented rules of the TRS R:

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

Used ordering: Polynomial interpretation [POLO]:

POL(00) = 2   
POL(DIV(x1)) = x1   
POL(cons0(x1, x2)) = 1 + x1 + x2   
POL(consSwap0(x1, x2)) = 1 + x1 + x2   
POL(div(x1)) = x1   
POL(divL0(x1, x2)) = x1 + 2·x2   
POL(ifminus(x1)) = x1   
POL(le) = 0   
POL(minus(x1)) = x1   
POL(s0(x1)) = 2 + 2·x1   

(33) Obligation:

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

div(00) → 00
consSwap0(x, xs) → cons0(x, xs)
lele
divL0(z, cons0(x, xs)) → divL0(z, consSwap0(x, xs))
ifminus(s0(x)) → 00
div(s0(x)) → s0(div(minus(x)))
consSwap0(x, cons0(y, xs)) → cons0(y, consSwap0(x, xs))
minus(00) → 00
minus(s0(x)) → ifminus(s0(x))
ifminus(s0(x)) → s0(minus(x))

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

(34) PisEmptyProof (EQUIVALENT transformation)

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

(35) YES

(36) 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
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(37) RelADPReductionPairProof (EQUIVALENT transformation)

We use the reduction pair processor [IJCAR24].
The following rules can be oriented strictly (l^# > ann(r))
and therefore we can remove all of its annotations in the right-hand side:
Absolute ADPs:


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

Relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))


The remaining rules can at least be oriented weakly:

Ordered with Polynomial interpretation [POLO]:

POL(0) = 2   
POL(CONSSWAP(x1, x2)) = 0   
POL(DIV(x1, x2)) = 2 + 2·x1·x2   
POL(DIVL(x1, x2)) = 2·x1 + 3·x2   
POL(IFMINUS(x1, x2, x3)) = 2 + x1·x2·x3 + 2·x3   
POL(LE(x1, x2)) = 2   
POL(MINUS(x1, x2)) = 2   
POL(cons(x1, x2)) = 3 + 3·x1 + x2   
POL(consSwap(x1, x2)) = 3 + 3·x1 + x2   
POL(div(x1, x2)) = 1 + 3·x2   
POL(divL(x1, x2)) = x1 + 2·x2   
POL(false) = 0   
POL(ifminus(x1, x2, x3)) = 3 + 3·x1 + 3·x2   
POL(le(x1, x2)) = 0   
POL(minus(x1, x2)) = 3 + 3·x1   
POL(nil) = 0   
POL(s(x1)) = 3   
POL(true) = 0   

(38) Obligation:

Relative ADP Problem with
No absolute ADPs, and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(39) DAbsisEmptyProof (EQUIVALENT transformation)

The relative ADP Problem has an empty P_abs. Hence, no infinite chain exists.

(40) YES

(41) 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
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(42) RelADPReductionPairProof (EQUIVALENT transformation)

We use the reduction pair processor [IJCAR24].
The following rules can be oriented strictly (l^# > ann(r))
and therefore we can remove all of its annotations in the right-hand side:
Absolute ADPs:


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

Relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))


The remaining rules can at least be oriented weakly:

Ordered with Polynomial interpretation [POLO]:

POL(0) = 0   
POL(CONSSWAP(x1, x2)) = 0   
POL(DIV(x1, x2)) = 1   
POL(DIVL(x1, x2)) = 2 + 2·x1 + 3·x2   
POL(IFMINUS(x1, x2, x3)) = 2 + x1·x2 + 2·x3   
POL(LE(x1, x2)) = 2 + 2·x1·x2   
POL(MINUS(x1, x2)) = 2 + 2·x1   
POL(cons(x1, x2)) = 2   
POL(consSwap(x1, x2)) = 2   
POL(div(x1, x2)) = x1   
POL(divL(x1, x2)) = x1   
POL(false) = 0   
POL(ifminus(x1, x2, x3)) = 3·x1 + x2   
POL(le(x1, x2)) = 0   
POL(minus(x1, x2)) = x1   
POL(nil) = 2   
POL(s(x1)) = 1 + 3·x1   
POL(true) = 0   

(43) Obligation:

Relative ADP Problem with
No absolute ADPs, and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(44) DAbsisEmptyProof (EQUIVALENT transformation)

The relative ADP Problem has an empty P_abs. Hence, no infinite chain exists.

(45) YES

(46) 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
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(47) RelADPReductionPairProof (EQUIVALENT transformation)

We use the reduction pair processor [IJCAR24].
The following rules can be oriented strictly (l^# > ann(r))
and therefore we can remove all of its annotations in the right-hand side:
Absolute ADPs:


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

Relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))


The remaining rules can at least be oriented weakly:

Ordered with Polynomial interpretation [POLO]:

POL(0) = 2   
POL(CONSSWAP(x1, x2)) = 0   
POL(DIV(x1, x2)) = 2 + 2·x1·x2   
POL(DIVL(x1, x2)) = 2·x1 + 3·x2   
POL(IFMINUS(x1, x2, x3)) = 2 + x1·x2·x3 + 2·x3   
POL(LE(x1, x2)) = 2   
POL(MINUS(x1, x2)) = 2   
POL(cons(x1, x2)) = 3 + 3·x1 + x2   
POL(consSwap(x1, x2)) = 3 + 3·x1 + x2   
POL(div(x1, x2)) = 1 + 3·x2   
POL(divL(x1, x2)) = x1 + 2·x2   
POL(false) = 0   
POL(ifminus(x1, x2, x3)) = 3 + 3·x1 + 3·x2   
POL(le(x1, x2)) = 0   
POL(minus(x1, x2)) = 3 + 3·x1   
POL(nil) = 0   
POL(s(x1)) = 3   
POL(true) = 0   

(48) Obligation:

Relative ADP Problem with
No absolute ADPs, and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
divL(x, nil) → x
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(49) DAbsisEmptyProof (EQUIVALENT transformation)

The relative ADP Problem has an empty P_abs. Hence, no infinite chain exists.

(50) YES

(51) Obligation:

Relative ADP Problem with
absolute ADPs:

divL(x, nil) → x

and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
minus(0, y) → 0
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(52) RelADPReductionPairProof (EQUIVALENT transformation)

We use the reduction pair processor [IJCAR24].
The following rules can be oriented strictly (l^# > ann(r))
and therefore we can remove all of its annotations in the right-hand side:
Absolute ADPs:


divL(x, nil) → x

Relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
minus(0, y) → 0


The remaining rules can at least be oriented weakly:

Ordered with Polynomial interpretation [POLO]:

POL(0) = 2   
POL(CONSSWAP(x1, x2)) = 0   
POL(DIV(x1, x2)) = 2 + 2·x1·x2 + x2   
POL(DIVL(x1, x2)) = 1 + 3·x1 + x2   
POL(IFMINUS(x1, x2, x3)) = 2 + x1·x3 + 2·x3   
POL(LE(x1, x2)) = 2   
POL(MINUS(x1, x2)) = 2·x1 + x1·x2   
POL(cons(x1, x2)) = 2 + 3·x2   
POL(consSwap(x1, x2)) = 2 + 3·x2   
POL(div(x1, x2)) = 3   
POL(divL(x1, x2)) = 2 + x1 + 2·x2   
POL(false) = 2   
POL(ifminus(x1, x2, x3)) = 3 + 3·x2 + 2·x3   
POL(le(x1, x2)) = 2·x1 + x2   
POL(minus(x1, x2)) = 3 + 3·x1 + 2·x2   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(true) = 0   

(53) Obligation:

Relative ADP Problem with
No absolute ADPs, and relative ADPs:

div(0, s(y)) → 0
consSwap(x, xs) → cons(x, xs)
divL(x, cons(y, xs)) → divL(div(x, y), xs)
le(s(x), s(y)) → le(x, y)
le(s(x), 0) → false
ifminus(true, s(x), y) → 0
div(s(x), s(y)) → s(div(minus(x, y), s(y)))
consSwap(x, cons(y, xs)) → cons(y, consSwap(x, xs))
divL(z, cons(x, xs)) → DIVL(z, CONSSWAP(x, xs))
divL(x, nil) → x
minus(0, y) → 0
minus(s(x), y) → ifminus(le(s(x), y), s(x), y)
le(0, y) → true
ifminus(false, s(x), y) → s(minus(x, y))

(54) DAbsisEmptyProof (EQUIVALENT transformation)

The relative ADP Problem has an empty P_abs. Hence, no infinite chain exists.

(55) YES