(0) Obligation:

JBC Problem based on JBC Program:
Manifest-Version: 1.0 Created-By: 1.6.0_20 (Sun Microsystems Inc.) Main-Class: Nats/DivMinus
package Nats;

public class DivMinus {

public static Nats minus(final Nats x, final Nats y) {
if (y.isZero()) {
return x.copy();
}
if (x.isZero()) {
return Nats.zero();
}
return minus(x.pred, y.pred);
}

public static Nats div(final Nats x, final Nats y) {
if (y.isZero()) {
return Nats.zero();
}
if (x.isZero()) {
return Nats.zero();
}
return Nats.succ(div(minus(x.pred, y.pred), y));
}

public static void main(final String[] args) {

final Nats x = new Nats(args[0].length());
final Nats y = new Nats(args[1].length());

final Nats z = div(x, y);

// System.out.println(x + " / " + y + " = " + z);

}
}


package Nats;

public class Nats {
Nats pred;

public Nats() {
}

public Nats(final int n) {
if (n <= 0) {
this.pred = null;
} else {
this.pred = new Nats(n - 1);
}
}

public int toInt() {
if (this.pred == null) {
return 0;
}
return this.pred.toInt() + 1;
}

@Override
public String toString() {
return (String.valueOf(toInt()));
}

public boolean isZero() {
return (this.pred == null);
}

public static Nats zero() {
return new Nats();
}

public static Nats succ(final Nats x) {
final Nats y = new Nats();
y.pred = x;
return y;
}

/**
* @return
*/
public Nats copy() {
if (this.pred == null) {
return new Nats();
}
final Nats predCopy = this.pred.copy();
return succ(predCopy);
}

}


(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Nats.DivMinus.main([Ljava/lang/String;)V: Graph of 159 nodes with 0 SCCs.

Nats.Nats.<init>(I)V: Graph of 27 nodes with 0 SCCs.

Nats.DivMinus.div(LNats/Nats;LNats/Nats;)LNats/Nats;: Graph of 118 nodes with 0 SCCs.

Nats.Nats.isZero()Z: Graph of 13 nodes with 0 SCCs.

Nats.DivMinus.minus(LNats/Nats;LNats/Nats;)LNats/Nats;: Graph of 143 nodes with 0 SCCs.

Nats.Nats.copy()LNats/Nats;: Graph of 57 nodes with 0 SCCs.


(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph SCCs to IDPs. Logs:


Log for SCC 0:

Generated 11 rules for P and 45 rules for R.


Combined rules. Obtained 1 rules for P and 3 rules for R.


Filtered ground terms:


1249_0_copy_FieldAccess(x1, x2, x3) → 1249_0_copy_FieldAccess(x2, x3)
Nats.Nats(x1, x2) → Nats.Nats(x2)
2638_0_copy_Return(x1, x2) → 2638_0_copy_Return(x2)
1817_0_copy_Return(x1, x2) → 1817_0_copy_Return
1415_0_copy_Return(x1, x2, x3) → 1415_0_copy_Return

Filtered duplicate args:


1249_0_copy_FieldAccess(x1, x2) → 1249_0_copy_FieldAccess(x2)

Finished conversion. Obtained 1 rules for P and 3 rules for R. System has no predefined symbols.




Log for SCC 1:

Generated 28 rules for P and 187 rules for R.


Combined rules. Obtained 4 rules for P and 15 rules for R.


Filtered ground terms:


Nats.Nats(x1, x2) → Nats.Nats(x2)
1237_0_isZero_Load(x1, x2) → 1237_0_isZero_Load(x2)
1008_0_isZero_Return(x1, x2) → 1008_0_isZero_Return
1186_0_isZero_Load(x1, x2) → 1186_0_isZero_Load(x2)
1031_0_isZero_Return(x1, x2) → 1031_0_isZero_Return
927_0_isZero_NONNULL(x1, x2) → 927_0_isZero_NONNULL(x2)
1953_0_minus_Return(x1, x2) → 1953_0_minus_Return(x2)
2376_0_minus_Return(x1, x2, x3, x4) → 2376_0_minus_Return(x2, x3, x4)
1697_0_minus_InvokeMethod(x1, x2, x3, x4) → 1697_0_minus_InvokeMethod(x3, x4)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
java.lang.RuntimeException(x1) → java.lang.RuntimeException
java.lang.Exception(x1) → java.lang.Exception
java.lang.Throwable(x1) → java.lang.Throwable
1734_0_minus_InvokeMethod(x1, x2, x3, x4) → 1734_0_minus_InvokeMethod(x4)
1689_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1689_0_minus_InvokeMethod(x4)
1681_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1681_0_minus_InvokeMethod(x4)
1585_0_minus_InvokeMethod(x1, x2, x3, x4) → 1585_0_minus_InvokeMethod(x3)
1494_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1494_0_minus_InvokeMethod(x3)
1481_0_minus_Return(x1, x2) → 1481_0_minus_Return
1470_0_minus_Return(x1, x2, x3, x4) → 1470_0_minus_Return(x3)
1419_0_minus_Return(x1, x2, x3, x4) → 1419_0_minus_Return(x2, x3)

Filtered duplicate args:


1237_1_minus_InvokeMethod(x1, x2, x3, x4) → 1237_1_minus_InvokeMethod(x1, x3, x4)
1186_1_minus_InvokeMethod(x1, x2, x3, x4) → 1186_1_minus_InvokeMethod(x1, x2, x4)

Finished conversion. Obtained 2 rules for P and 15 rules for R. System has no predefined symbols.




Log for SCC 2:

Generated 42 rules for P and 303 rules for R.


Combined rules. Obtained 9 rules for P and 49 rules for R.


Filtered ground terms:


Nats.Nats(x1, x2) → Nats.Nats(x2)
1617_0_isZero_Load(x1, x2) → 1617_0_isZero_Load(x2)
1953_0_minus_Return(x1, x2) → 1953_0_minus_Return(x2)
1481_0_minus_Return(x1, x2) → 1481_0_minus_Return
2376_0_minus_Return(x1, x2, x3, x4) → 2376_0_minus_Return(x2, x3, x4)
1470_0_minus_Return(x1, x2, x3, x4) → 1470_0_minus_Return(x3)
1419_0_minus_Return(x1, x2, x3, x4) → 1419_0_minus_Return(x2, x3)
1856_0_minus_Load(x1, x2, x3) → 1856_0_minus_Load(x2, x3)
1008_0_isZero_Return(x1, x2) → 1008_0_isZero_Return
1761_0_isZero_Load(x1, x2) → 1761_0_isZero_Load(x2)
2638_0_copy_Return(x1, x2) → 2638_0_copy_Return(x2)
1817_0_copy_Return(x1, x2) → 1817_0_copy_Return
1415_0_copy_Return(x1, x2, x3) → 1415_0_copy_Return
1252_0_minus_EQ(x1, x2, x3, x4) → 1252_0_minus_EQ(x2, x3, x4)
1734_0_minus_InvokeMethod(x1, x2, x3, x4) → 1734_0_minus_InvokeMethod(x4)
java.lang.NullPointerException(x1) → java.lang.NullPointerException
java.lang.RuntimeException(x1) → java.lang.RuntimeException
java.lang.Exception(x1) → java.lang.Exception
java.lang.Throwable(x1) → java.lang.Throwable
1689_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1689_0_minus_InvokeMethod(x4)
1697_0_minus_InvokeMethod(x1, x2, x3, x4) → 1697_0_minus_InvokeMethod(x3, x4)
1585_0_minus_InvokeMethod(x1, x2, x3, x4) → 1585_0_minus_InvokeMethod(x3)
1681_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1681_0_minus_InvokeMethod(x4)
1494_0_minus_InvokeMethod(x1, x2, x3, x4, x5) → 1494_0_minus_InvokeMethod(x3)
1174_0_minus_InvokeMethod(x1, x2, x3, x4) → 1174_0_minus_InvokeMethod(x2, x3, x4)
1031_0_isZero_Return(x1, x2) → 1031_0_isZero_Return
1275_0_copy_NONNULL(x1, x2, x3) → 1275_0_copy_NONNULL(x2, x3)
1206_0_minus_EQ(x1, x2, x3, x4) → 1206_0_minus_EQ(x2, x3, x4)
927_0_isZero_NONNULL(x1, x2) → 927_0_isZero_NONNULL(x2)
2812_0_div_Return(x1, x2) → 2812_0_div_Return(x2)
2386_0_div_Return(x1, x2) → 2386_0_div_Return
2163_0_div_InvokeMethod(x1, x2, x3, x4) → 2163_0_div_InvokeMethod(x3, x4)
2034_0_div_Return(x1, x2, x3, x4) → 2034_0_div_Return(x2, x3)
1949_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1949_0_div_InvokeMethod(x3, x4, x5)
1937_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1937_0_div_InvokeMethod(x3, x5)
1818_0_div_Return(x1, x2, x3, x4) → 1818_0_div_Return(x2, x3)
1929_0_div_InvokeMethod(x1, x2, x3, x4, x5) → 1929_0_div_InvokeMethod(x4)

Filtered duplicate args:


1617_1_div_InvokeMethod(x1, x2, x3, x4) → 1617_1_div_InvokeMethod(x1, x2, x4)
1761_1_div_InvokeMethod(x1, x2, x3, x4) → 1761_1_div_InvokeMethod(x1, x3, x4)
1230_1_minus_InvokeMethod(x1, x2, x3, x4) → 1230_1_minus_InvokeMethod(x1, x3, x4)
1174_0_minus_InvokeMethod(x1, x2, x3) → 1174_0_minus_InvokeMethod(x1, x3)
1237_1_minus_InvokeMethod(x1, x2, x3, x4) → 1237_1_minus_InvokeMethod(x1, x3, x4)
1186_1_minus_InvokeMethod(x1, x2, x3, x4) → 1186_1_minus_InvokeMethod(x1, x2, x4)

Finished conversion. Obtained 7 rules for P and 49 rules for R. System has no predefined symbols.




Log for SCC 3:

Generated 15 rules for P and 12 rules for R.


Combined rules. Obtained 1 rules for P and 2 rules for R.


Filtered ground terms:


92_0_<init>_InvokeMethod(x1, x2) → 92_0_<init>_InvokeMethod(x2)
Cond_92_0_<init>_InvokeMethod(x1, x2, x3) → Cond_92_0_<init>_InvokeMethod(x1, x3)
370_0_<init>_Return(x1) → 370_0_<init>_Return
215_0_<init>_Return(x1) → 215_0_<init>_Return

Combined rules. Obtained 1 rules for P and 2 rules for R.


Finished conversion. Obtained 1 rules for P and 2 rules for R. System has predefined symbols.


(4) Complex Obligation (AND)

(5) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))

The integer pair graph contains the following rules and edges:
(0): 1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

(0) -> (0), if ((java.lang.Object(x0[0]) →* java.lang.Object(Nats.Nats(java.lang.Object(x0[0]')))))



The set Q consists of the following terms:
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

(6) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(7) Obligation:

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

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

The TRS R consists of the following rules:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))

The set Q consists of the following terms:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

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

(8) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(9) Obligation:

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

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

R is empty.
The set Q consists of the following terms:

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

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

(10) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))

(11) Obligation:

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

1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))

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

(12) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1249_0_COPY_FIELDACCESS(java.lang.Object(Nats.Nats(java.lang.Object(x0[0])))) → 1249_0_COPY_FIELDACCESS(java.lang.Object(x0[0]))
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The integer pair graph contains the following rules and edges:
(0): 1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
(1): 1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

(0) -> (1), if ((1237_0_isZero_Load(java.lang.Object(x2[0])) →* 1008_0_isZero_Return)∧(java.lang.Object(x1[0]) →* java.lang.Object(x1[1]))∧(java.lang.Object(x2[0]) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))))


(1) -> (0), if ((1237_0_isZero_Load(java.lang.Object(x1[1])) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))))



The set Q consists of the following terms:
1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

(15) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(16) Obligation:

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

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

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

(17) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(18) Obligation:

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

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

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

(19) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))

(20) Obligation:

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

1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))

The TRS R consists of the following rules:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return

The set Q consists of the following terms:

1237_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)

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

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • 1186_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(x1[1]), java.lang.Object(Nats.Nats(java.lang.Object(x2[1])))) → 1237_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x1[1])), java.lang.Object(Nats.Nats(java.lang.Object(x2[1]))), java.lang.Object(x1[1]))
    The graph contains the following edges 3 >= 2, 2 >= 3

  • 1237_1_MINUS_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x1[0])))) → 1186_1_MINUS_INVOKEMETHOD(1237_0_isZero_Load(java.lang.Object(x2[0])), java.lang.Object(x1[0]), java.lang.Object(x2[0]))
    The graph contains the following edges 3 > 2, 2 > 3

(22) YES

(23) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


The ITRS R consists of the following rules:
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), 0)
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), 1)
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 0) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 1) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), 0)
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), 1)
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The integer pair graph contains the following rules and edges:
(0): 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
(1): 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
(2): 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
(3): 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
(4): 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
(5): 1856_1_DIV_INVOKEMETHOD(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))
(6): 1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

(0) -> (1), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))) →* java.lang.Object(Nats.Nats(x2[1])))∧(java.lang.Object(Nats.Nats(x1[0])) →* java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))))


(1) -> (2), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(x0[2])))∧(x2[1]* java.lang.Object(Nats.Nats(x1[2]))))


(1) -> (3), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(NULL)))∧(x2[1]* java.lang.Object(Nats.Nats(x0[3]))))


(1) -> (4), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))))∧(x2[1]* java.lang.Object(Nats.Nats(x1[4]))))


(1) -> (5), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1481_0_minus_Return)∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))))∧(x2[1]* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))


(1) -> (6), if ((1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]) →* 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))))∧(java.lang.Object(Nats.Nats(x2[1])) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))∧(java.lang.Object(x1[1]) →* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))))∧(x2[1]* java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))


(2) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(3) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(4) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(5) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(NULL)) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))


(6) -> (0), if ((1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))) →* 1008_0_isZero_Return)∧(java.lang.Object(Nats.Nats(x0[6])) →* java.lang.Object(Nats.Nats(x1[0])))∧(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))) →* java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))))



The set Q consists of the following terms:
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 0)
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0)
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), 1)
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 0)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), 1)
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

(24) IDPtoQDPProof (SOUND transformation)

Represented integers and predefined function symbols by Terms

(25) Obligation:

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

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[5])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5]))))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[5])))))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(26) DependencyGraphProof (EQUIVALENT transformation)

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

(27) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL) → 1929_0_div_InvokeMethod(x0)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0))) → 1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2386_0_div_Return
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(28) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(29) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(30) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1856_1_div_InvokeMethod(1494_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(NULL)), x0, NULL)
1856_1_div_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1856_1_div_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), NULL, java.lang.Object(Nats.Nats(x0)))
1856_1_div_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1856_1_div_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1818_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(1937_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(1949_0_div_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
2062_1_div_InvokeMethod(2034_0_div_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2163_0_div_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2386_0_div_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
2062_1_div_InvokeMethod(2812_0_div_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))

(31) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(32) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1856_0_minus_Load(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1]) at position [0] we obtained the following new rules [LPAR04]:

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

(33) Obligation:

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

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1856_0_minus_Load(x0, x1) → 1174_0_minus_InvokeMethod(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(34) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(35) Obligation:

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

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1856_0_minus_Load(x0, x1)
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(36) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1856_0_minus_Load(x0, x1)

(37) Obligation:

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

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(38) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

(39) Obligation:

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

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(40) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(x1[0]))), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0]))) at position [0] we obtained the following new rules [LPAR04]:

1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))

(41) Obligation:

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

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(42) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

(43) Obligation:

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

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(44) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

(45) Obligation:

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

1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(46) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(1617_0_isZero_Load(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

(47) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0))) → 927_0_isZero_NONNULL(x0)

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(48) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(49) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))
1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(50) QReductionProof (EQUIVALENT transformation)

We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

1617_0_isZero_Load(java.lang.Object(Nats.Nats(x0)))

(51) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(52) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

(53) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(54) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

(55) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))))

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

(56) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule 1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(x1[4]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4]))))) at position [0] we obtained the following new rules [LPAR04]:

1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

(57) Obligation:

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

1761_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(Nats.Nats(java.lang.Object(x1[1])))) → 1856_1_DIV_INVOKEMETHOD(1174_0_minus_InvokeMethod(java.lang.Object(x1[1]), x2[1]), java.lang.Object(Nats.Nats(x2[1])), java.lang.Object(x1[1]), x2[1])
1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x1[0])), java.lang.Object(Nats.Nats(java.lang.Object(x2[0])))) → 1761_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(x1[0]), java.lang.Object(Nats.Nats(java.lang.Object(x2[0]))), java.lang.Object(Nats.Nats(x1[0])))
1856_1_DIV_INVOKEMETHOD(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0[6]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[6])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))) → 1617_1_DIV_INVOKEMETHOD(927_0_isZero_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6]))))), java.lang.Object(Nats.Nats(x0[6])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[6])))))))
1856_1_DIV_INVOKEMETHOD(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))), java.lang.Object(Nats.Nats(x0[2])), java.lang.Object(Nats.Nats(x1[2]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[2])))))
1856_1_DIV_INVOKEMETHOD(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0[3]))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0[3]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[3])))))
1856_1_DIV_INVOKEMETHOD(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4])), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4]))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0[4])))), java.lang.Object(Nats.Nats(x1[4]))) → 1617_1_DIV_INVOKEMETHOD(1008_0_isZero_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2[4])))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1[4])))))

The TRS R consists of the following rules:

927_0_isZero_NONNULL(java.lang.Object(x0)) → 1008_0_isZero_Return
927_0_isZero_NONNULL(NULL) → 1031_0_isZero_Return
1174_0_minus_InvokeMethod(x0, NULL) → 1494_0_minus_InvokeMethod(x0)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1))) → 1186_1_minus_InvokeMethod(927_0_isZero_NONNULL(x1), x0, java.lang.Object(Nats.Nats(x1)))
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x1, java.lang.Object(Nats.Nats(java.lang.Object(x2)))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(java.lang.Object(x2))), pos(01))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x1, java.lang.Object(Nats.Nats(NULL))) → 1206_0_minus_EQ(x1, java.lang.Object(Nats.Nats(NULL)), pos(s(01)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01))) → 1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1230_1_minus_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL) → 1415_0_copy_Return
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0))) → 1351_1_copy_InvokeMethod(1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(x0)), x0), java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1470_0_minus_Return(java.lang.Object(Nats.Nats(x0)))
1230_1_minus_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1230_1_minus_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))), java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))))) → 2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL))) → 1817_0_copy_Return
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01)) → 1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1237_1_minus_InvokeMethod(927_0_isZero_NONNULL(x0), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(x0)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x2)), java.lang.Object(Nats.Nats(java.lang.Object(x1)))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(java.lang.Object(x1))), java.lang.Object(Nats.Nats(x2)), pos(01))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(NULL))) → 1252_0_minus_EQ(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01))) → 1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01)) → 1362_1_minus_InvokeMethod(1174_0_minus_InvokeMethod(x0, x1), x0, x1)
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL) → 1585_0_minus_InvokeMethod(x0)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2)))))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))) → 1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0))) → 1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1481_0_minus_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1953_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))) → 1953_0_minus_Return(java.lang.Object(Nats.Nats(x0)))

The set Q consists of the following terms:

1174_0_minus_InvokeMethod(x0, NULL)
1174_0_minus_InvokeMethod(x0, java.lang.Object(Nats.Nats(x1)))
927_0_isZero_NONNULL(java.lang.Object(x0))
927_0_isZero_NONNULL(NULL)
1186_1_minus_InvokeMethod(1008_0_isZero_Return, x0, java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1186_1_minus_InvokeMethod(1031_0_isZero_Return, x0, java.lang.Object(Nats.Nats(NULL)))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(01))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1206_0_minus_EQ(NULL, java.lang.Object(Nats.Nats(x0)), pos(s(01)))
1206_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(s(01)))
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(NULL)), NULL)
1275_0_copy_NONNULL(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x0)))
1351_1_copy_InvokeMethod(1817_0_copy_Return, java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(NULL)))))
1351_1_copy_InvokeMethod(2638_0_copy_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0))))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))))
1351_1_copy_InvokeMethod(1415_0_copy_Return, java.lang.Object(Nats.Nats(NULL)))
1237_1_minus_InvokeMethod(1008_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(java.lang.Object(x1))))
1237_1_minus_InvokeMethod(1031_0_isZero_Return, java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1252_0_minus_EQ(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)), pos(01))
1362_1_minus_InvokeMethod(1494_0_minus_InvokeMethod(x0), x0, NULL)
1362_1_minus_InvokeMethod(1681_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), NULL, java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(1419_0_minus_Return(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1470_0_minus_Return(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(x0)))
1362_1_minus_InvokeMethod(2376_0_minus_Return(java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x2))))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(x1)))
1362_1_minus_InvokeMethod(1585_0_minus_InvokeMethod(x0), java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(NULL)))
1362_1_minus_InvokeMethod(1697_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0)), java.lang.Object(Nats.Nats(x1))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x1)))))
1362_1_minus_InvokeMethod(1734_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(x0))), java.lang.Object(Nats.Nats(NULL)), java.lang.Object(Nats.Nats(java.lang.Object(Nats.Nats(x0)))))
1362_1_minus_InvokeMethod(1689_0_minus_InvokeMethod(java.lang.Object(Nats.Nats(