/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.jar /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could be proven: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 726 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) AND (7) JBCTerminationSCC (8) SCCToQDPProof [SOUND, 111 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) JBCTerminationSCC (13) SCCToQDPProof [SOUND, 43 ms] (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) JBCTerminationSCC (18) SCCToIRSProof [SOUND, 336 ms] (19) IRSwT (20) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (21) IRSwT (22) IRSwTTerminationDigraphProof [EQUIVALENT, 20 ms] (23) IRSwT (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IRSwT (26) TempFilterProof [SOUND, 17 ms] (27) IntTRS (28) PolynomialOrderProcessor [EQUIVALENT, 0 ms] (29) YES ---------------------------------------- (0) Obligation: need to prove termination of the following program: public class Entry { private String item; private int count; public Entry(String itemData, int countData) { item = itemData; count = countData; } public String toString( ) { return (item + " " + count); } public boolean equals(Object otherObject) { if (otherObject == null) return false; else if (getClass( ) != otherObject.getClass( )) return false; else { Entry otherEntry = (Entry)otherObject; return (item.equals(otherEntry.item) && (count == otherEntry.count)); } } // } public class LinkedList { private class Node { private T data; private Node link; public Node( ) { data = null; link = null; } public Node(T newData, Node linkValue) { data = newData; link = linkValue; } }//End of Node inner class private Node head; public LinkedList( ) { head = null; } /** Adds a node at the start of the list with the specified data. The added node will be the first node in the list. */ public void addToStart(T itemData) { this.head = new Node(itemData, this.head); } /** Removes the head node and returns true if the list contains at least one node. Returns false if the list is empty. */ public boolean deleteHeadNode( ) { if (head != null) { head = head.link; return true; } else return false; } /** Returns the number of nodes in the list. */ public int size( ) { int count = 0; Node position = head; while (position != null) { count++; position = position.link; } return count; } public boolean contains(T item) { return (find(item) != null); } /** Finds the first node containing the target item, and returns a reference to that node. If target is not in the list, null is returned. */ private Node find(T target) { Node position = head; T itemAtPosition; while (position != null) { itemAtPosition = position.data; if (itemAtPosition.equals(target)) return position; position = position.link; } return null; //target was not found } /** Finds the first node containing the target and returns a reference to the data in that node. If target is not in the list, null is returned. */ public T findData(T target) { return find(target).data; } public void outputList( ) { Node position = head; while (position != null) { //System.out.println(position.data); position = position.link; } } public boolean isEmpty( ) { return (head == null); } public void clear( ) { head = null; } /* For two lists to be equal they must contain the same data items in the same order. The equals method of T is used to compare data items. */ public boolean equals(Object otherObject) { if (!(otherObject instanceof LinkedList)) return false; else { LinkedList otherList = (LinkedList)otherObject; if (size( ) != otherList.size( )) return false; Node position = head; Node otherPosition = otherList.head; while (position != null) { if (!(position.data.equals(otherPosition.data))) return false; position = position.link; otherPosition = otherPosition.link; } return true; //no mismatch was not found } } public static void main(String[] args) { LinkedList list = new LinkedList( ); for (int i = 1; i < args.length; i++) { Entry entry = new Entry(args[i], i++); list.addToStart(entry); entry = new Entry(args[i], i++); list.addToStart(entry); entry = new Entry(args[i], i++); list.addToStart(entry); } list.size(); // remove it! //System.out.println("List has " + list.size( ) // + " nodes."); list.outputList( ); //System.out.println("End of list."); } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: public class Entry { private String item; private int count; public Entry(String itemData, int countData) { item = itemData; count = countData; } public String toString( ) { return (item + " " + count); } public boolean equals(Object otherObject) { if (otherObject == null) return false; else if (getClass( ) != otherObject.getClass( )) return false; else { Entry otherEntry = (Entry)otherObject; return (item.equals(otherEntry.item) && (count == otherEntry.count)); } } // } public class LinkedList { private class Node { private T data; private Node link; public Node( ) { data = null; link = null; } public Node(T newData, Node linkValue) { data = newData; link = linkValue; } }//End of Node inner class private Node head; public LinkedList( ) { head = null; } /** Adds a node at the start of the list with the specified data. The added node will be the first node in the list. */ public void addToStart(T itemData) { this.head = new Node(itemData, this.head); } /** Removes the head node and returns true if the list contains at least one node. Returns false if the list is empty. */ public boolean deleteHeadNode( ) { if (head != null) { head = head.link; return true; } else return false; } /** Returns the number of nodes in the list. */ public int size( ) { int count = 0; Node position = head; while (position != null) { count++; position = position.link; } return count; } public boolean contains(T item) { return (find(item) != null); } /** Finds the first node containing the target item, and returns a reference to that node. If target is not in the list, null is returned. */ private Node find(T target) { Node position = head; T itemAtPosition; while (position != null) { itemAtPosition = position.data; if (itemAtPosition.equals(target)) return position; position = position.link; } return null; //target was not found } /** Finds the first node containing the target and returns a reference to the data in that node. If target is not in the list, null is returned. */ public T findData(T target) { return find(target).data; } public void outputList( ) { Node position = head; while (position != null) { //System.out.println(position.data); position = position.link; } } public boolean isEmpty( ) { return (head == null); } public void clear( ) { head = null; } /* For two lists to be equal they must contain the same data items in the same order. The equals method of T is used to compare data items. */ public boolean equals(Object otherObject) { if (!(otherObject instanceof LinkedList)) return false; else { LinkedList otherList = (LinkedList)otherObject; if (size( ) != otherList.size( )) return false; Node position = head; Node otherPosition = otherList.head; while (position != null) { if (!(position.data.equals(otherPosition.data))) return false; position = position.link; otherPosition = otherPosition.link; } return true; //no mismatch was not found } } public static void main(String[] args) { LinkedList list = new LinkedList( ); for (int i = 1; i < args.length; i++) { Entry entry = new Entry(args[i], i++); list.addToStart(entry); entry = new Entry(args[i], i++); list.addToStart(entry); entry = new Entry(args[i], i++); list.addToStart(entry); } list.size(); // remove it! //System.out.println("List has " + list.size( ) // + " nodes."); list.outputList( ); //System.out.println("End of list."); } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: LinkedList.main([Ljava/lang/String;)V: Graph of 278 nodes with 3 SCCs. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 3 SCCss. ---------------------------------------- (6) Complex Obligation (AND) ---------------------------------------- (7) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *LinkedList$Node: [link] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (8) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 12 rules for P and 0 rules for R.P rules: f2224_0_outputList_NULL(EOS(STATIC_2224), java.lang.Object(o871sub), java.lang.Object(o871sub)) -> f2231_0_outputList_NULL(EOS(STATIC_2231), java.lang.Object(o871sub), java.lang.Object(o871sub)) :|: TRUE f2231_0_outputList_NULL(EOS(STATIC_2231), java.lang.Object(o871sub), java.lang.Object(o871sub)) -> f2235_0_outputList_Load(EOS(STATIC_2235), java.lang.Object(o871sub)) :|: TRUE f2235_0_outputList_Load(EOS(STATIC_2235), java.lang.Object(o871sub)) -> f2239_0_outputList_InvokeMethod(EOS(STATIC_2239), java.lang.Object(o871sub)) :|: TRUE f2239_0_outputList_InvokeMethod(EOS(STATIC_2239), java.lang.Object(o871sub)) -> f2245_0_access$000_Load(EOS(STATIC_2245), java.lang.Object(o871sub)) :|: TRUE f2245_0_access$000_Load(EOS(STATIC_2245), java.lang.Object(o871sub)) -> f2257_0_access$000_FieldAccess(EOS(STATIC_2257), java.lang.Object(o871sub)) :|: TRUE f2257_0_access$000_FieldAccess(EOS(STATIC_2257), java.lang.Object(LinkedList$Node(EOC, o885))) -> f2265_0_access$000_FieldAccess(EOS(STATIC_2265), java.lang.Object(LinkedList$Node(EOC, o885))) :|: TRUE f2265_0_access$000_FieldAccess(EOS(STATIC_2265), java.lang.Object(LinkedList$Node(EOC, o885))) -> f2271_0_access$000_Return(EOS(STATIC_2271), o885) :|: TRUE f2271_0_access$000_Return(EOS(STATIC_2271), o885) -> f2277_0_outputList_Store(EOS(STATIC_2277), o885) :|: TRUE f2277_0_outputList_Store(EOS(STATIC_2277), o885) -> f2299_0_outputList_JMP(EOS(STATIC_2299), o885) :|: TRUE f2299_0_outputList_JMP(EOS(STATIC_2299), o885) -> f2309_0_outputList_Load(EOS(STATIC_2309), o885) :|: TRUE f2309_0_outputList_Load(EOS(STATIC_2309), o885) -> f2220_0_outputList_Load(EOS(STATIC_2220), o885) :|: TRUE f2220_0_outputList_Load(EOS(STATIC_2220), o844) -> f2224_0_outputList_NULL(EOS(STATIC_2224), o844, o844) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f2224_0_outputList_NULL(EOS(STATIC_2224), java.lang.Object(LinkedList$Node(EOC, o885:0)), java.lang.Object(LinkedList$Node(EOC, o885:0))) -> f2224_0_outputList_NULL(EOS(STATIC_2224), o885:0, o885:0) :|: TRUE R rules: Filtered ground terms: f2224_0_outputList_NULL(x1, x2, x3) -> f2224_0_outputList_NULL(x2, x3) EOS(x1) -> EOS LinkedList$Node(x1, x2) -> LinkedList$Node(x2) Filtered duplicate args: f2224_0_outputList_NULL(x1, x2) -> f2224_0_outputList_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F2224_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o885:0:0))) -> F2224_0_OUTPUTLIST_NULL(o885:0:0) :|: TRUE R rules: ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: F2224_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o885:0:0))) -> F2224_0_OUTPUTLIST_NULL(o885:0:0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPSizeChangeProof (EQUIVALENT) 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: *F2224_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o885:0:0))) -> F2224_0_OUTPUTLIST_NULL(o885:0:0) The graph contains the following edges 1 > 1 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *LinkedList$Node: [link] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (13) SCCToQDPProof (SOUND) Transformed TerminationGraph SCC to QDP. Log: Generated 14 rules for P and 0 rules for R.P rules: f2171_0_size_NULL(EOS(STATIC_2171), java.lang.Object(o848sub), java.lang.Object(o848sub)) -> f2173_0_size_NULL(EOS(STATIC_2173), java.lang.Object(o848sub), java.lang.Object(o848sub)) :|: TRUE f2173_0_size_NULL(EOS(STATIC_2173), java.lang.Object(o848sub), java.lang.Object(o848sub)) -> f2176_0_size_Inc(EOS(STATIC_2176), java.lang.Object(o848sub)) :|: TRUE f2176_0_size_Inc(EOS(STATIC_2176), java.lang.Object(o848sub)) -> f2180_0_size_Load(EOS(STATIC_2180), java.lang.Object(o848sub)) :|: TRUE f2180_0_size_Load(EOS(STATIC_2180), java.lang.Object(o848sub)) -> f2184_0_size_InvokeMethod(EOS(STATIC_2184), java.lang.Object(o848sub)) :|: TRUE f2184_0_size_InvokeMethod(EOS(STATIC_2184), java.lang.Object(o848sub)) -> f2187_0_access$000_Load(EOS(STATIC_2187), java.lang.Object(o848sub)) :|: TRUE f2187_0_access$000_Load(EOS(STATIC_2187), java.lang.Object(o848sub)) -> f2194_0_access$000_FieldAccess(EOS(STATIC_2194), java.lang.Object(o848sub)) :|: TRUE f2194_0_access$000_FieldAccess(EOS(STATIC_2194), java.lang.Object(o852sub)) -> f2196_0_access$000_FieldAccess(EOS(STATIC_2196), java.lang.Object(o852sub)) :|: TRUE f2196_0_access$000_FieldAccess(EOS(STATIC_2196), java.lang.Object(LinkedList$Node(EOC, o858))) -> f2199_0_access$000_FieldAccess(EOS(STATIC_2199), java.lang.Object(LinkedList$Node(EOC, o858))) :|: TRUE f2199_0_access$000_FieldAccess(EOS(STATIC_2199), java.lang.Object(LinkedList$Node(EOC, o858))) -> f2212_0_access$000_Return(EOS(STATIC_2212), o858) :|: TRUE f2212_0_access$000_Return(EOS(STATIC_2212), o858) -> f2219_0_size_Store(EOS(STATIC_2219), o858) :|: TRUE f2219_0_size_Store(EOS(STATIC_2219), o858) -> f2223_0_size_JMP(EOS(STATIC_2223), o858) :|: TRUE f2223_0_size_JMP(EOS(STATIC_2223), o858) -> f2230_0_size_Load(EOS(STATIC_2230), o858) :|: TRUE f2230_0_size_Load(EOS(STATIC_2230), o858) -> f2169_0_size_Load(EOS(STATIC_2169), o858) :|: TRUE f2169_0_size_Load(EOS(STATIC_2169), o842) -> f2171_0_size_NULL(EOS(STATIC_2171), o842, o842) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f2171_0_size_NULL(EOS(STATIC_2171), java.lang.Object(LinkedList$Node(EOC, o858:0)), java.lang.Object(LinkedList$Node(EOC, o858:0))) -> f2171_0_size_NULL(EOS(STATIC_2171), o858:0, o858:0) :|: TRUE R rules: Filtered ground terms: f2171_0_size_NULL(x1, x2, x3) -> f2171_0_size_NULL(x2, x3) EOS(x1) -> EOS LinkedList$Node(x1, x2) -> LinkedList$Node(x2) Filtered duplicate args: f2171_0_size_NULL(x1, x2) -> f2171_0_size_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F2171_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o858:0:0))) -> F2171_0_SIZE_NULL(o858:0:0) :|: TRUE R rules: ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: F2171_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o858:0:0))) -> F2171_0_SIZE_NULL(o858:0:0) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QDPSizeChangeProof (EQUIVALENT) 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: *F2171_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o858:0:0))) -> F2171_0_SIZE_NULL(o858:0:0) The graph contains the following edges 1 > 1 ---------------------------------------- (16) YES ---------------------------------------- (17) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *LinkedList: [head] *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (18) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 141 IRulesP rules: f1893_0_main_Load(EOS(STATIC_1893), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56) -> f1894_0_main_ArrayLength(EOS(STATIC_1894), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56, java.lang.Object(o795sub)) :|: TRUE f1894_0_main_ArrayLength(EOS(STATIC_1894), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) -> f1895_0_main_ArrayLength(EOS(STATIC_1895), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) :|: i58 >= 0 f1895_0_main_ArrayLength(EOS(STATIC_1895), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) -> f1896_0_main_GE(EOS(STATIC_1896), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) :|: i58 >= 0 f1896_0_main_GE(EOS(STATIC_1896), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) -> f1907_0_main_GE(EOS(STATIC_1907), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) :|: i56 < i58 f1907_0_main_GE(EOS(STATIC_1907), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) -> f1909_0_main_New(EOS(STATIC_1909), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: i56 < i58 f1909_0_main_New(EOS(STATIC_1909), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1911_0_main_Duplicate(EOS(STATIC_1911), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: TRUE f1911_0_main_Duplicate(EOS(STATIC_1911), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1913_0_main_Load(EOS(STATIC_1913), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: TRUE f1913_0_main_Load(EOS(STATIC_1913), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1914_0_main_Load(EOS(STATIC_1914), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58))) :|: TRUE f1914_0_main_Load(EOS(STATIC_1914), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58))) -> f1916_0_main_ArrayAccess(EOS(STATIC_1916), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) :|: TRUE f1916_0_main_ArrayAccess(EOS(STATIC_1916), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) -> f1918_0_main_ArrayAccess(EOS(STATIC_1918), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) :|: TRUE f1918_0_main_ArrayAccess(EOS(STATIC_1918), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) -> f1921_0_main_Load(EOS(STATIC_1921), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: i56 < i58 f1921_0_main_Load(EOS(STATIC_1921), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1924_0_main_Inc(EOS(STATIC_1924), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56) :|: TRUE f1924_0_main_Inc(EOS(STATIC_1924), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56) -> f1926_0_main_InvokeMethod(EOS(STATIC_1926), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56 + 1, i56) :|: TRUE f1926_0_main_InvokeMethod(EOS(STATIC_1926), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1929_0__init__Load(EOS(STATIC_1929), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1929_0__init__Load(EOS(STATIC_1929), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1935_0__init__InvokeMethod(EOS(STATIC_1935), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1935_0__init__InvokeMethod(EOS(STATIC_1935), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1942_0__init__Load(EOS(STATIC_1942), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1942_0__init__Load(EOS(STATIC_1942), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1947_0__init__Load(EOS(STATIC_1947), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1947_0__init__Load(EOS(STATIC_1947), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1952_0__init__FieldAccess(EOS(STATIC_1952), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1952_0__init__FieldAccess(EOS(STATIC_1952), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1960_0__init__Load(EOS(STATIC_1960), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1960_0__init__Load(EOS(STATIC_1960), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1965_0__init__Load(EOS(STATIC_1965), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1965_0__init__Load(EOS(STATIC_1965), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1971_0__init__FieldAccess(EOS(STATIC_1971), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE f1971_0__init__FieldAccess(EOS(STATIC_1971), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1977_0__init__Return(EOS(STATIC_1977), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f1977_0__init__Return(EOS(STATIC_1977), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1982_0_main_Store(EOS(STATIC_1982), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f1982_0_main_Store(EOS(STATIC_1982), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1987_0_main_Load(EOS(STATIC_1987), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f1987_0_main_Load(EOS(STATIC_1987), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2037_0_main_Load(EOS(STATIC_2037), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2037_0_main_Load(EOS(STATIC_2037), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2042_0_main_InvokeMethod(EOS(STATIC_2042), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2042_0_main_InvokeMethod(EOS(STATIC_2042), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2049_0_addToStart_Load(EOS(STATIC_2049), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2049_0_addToStart_Load(EOS(STATIC_2049), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2063_0_addToStart_New(EOS(STATIC_2063), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2063_0_addToStart_New(EOS(STATIC_2063), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2068_0_addToStart_Duplicate(EOS(STATIC_2068), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2068_0_addToStart_Duplicate(EOS(STATIC_2068), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2075_0_addToStart_Load(EOS(STATIC_2075), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2075_0_addToStart_Load(EOS(STATIC_2075), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2081_0_addToStart_Load(EOS(STATIC_2081), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2081_0_addToStart_Load(EOS(STATIC_2081), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2085_0_addToStart_Load(EOS(STATIC_2085), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2085_0_addToStart_Load(EOS(STATIC_2085), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2090_0_addToStart_FieldAccess(EOS(STATIC_2090), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2090_0_addToStart_FieldAccess(EOS(STATIC_2090), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2098_0_addToStart_InvokeMethod(EOS(STATIC_2098), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2098_0_addToStart_InvokeMethod(EOS(STATIC_2098), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2102_0__init__Load(EOS(STATIC_2102), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2102_0__init__Load(EOS(STATIC_2102), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2109_0__init__Load(EOS(STATIC_2109), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2109_0__init__Load(EOS(STATIC_2109), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2112_0__init__FieldAccess(EOS(STATIC_2112), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2112_0__init__FieldAccess(EOS(STATIC_2112), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2114_0__init__Load(EOS(STATIC_2114), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2114_0__init__Load(EOS(STATIC_2114), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2117_0__init__InvokeMethod(EOS(STATIC_2117), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2117_0__init__InvokeMethod(EOS(STATIC_2117), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2120_0__init__Load(EOS(STATIC_2120), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2120_0__init__Load(EOS(STATIC_2120), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2127_0__init__Load(EOS(STATIC_2127), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2127_0__init__Load(EOS(STATIC_2127), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2131_0__init__FieldAccess(EOS(STATIC_2131), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2131_0__init__FieldAccess(EOS(STATIC_2131), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2138_0__init__Load(EOS(STATIC_2138), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2138_0__init__Load(EOS(STATIC_2138), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2140_0__init__Load(EOS(STATIC_2140), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2140_0__init__Load(EOS(STATIC_2140), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2151_0__init__FieldAccess(EOS(STATIC_2151), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2151_0__init__FieldAccess(EOS(STATIC_2151), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2155_0__init__Return(EOS(STATIC_2155), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2155_0__init__Return(EOS(STATIC_2155), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2158_0_addToStart_FieldAccess(EOS(STATIC_2158), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2158_0_addToStart_FieldAccess(EOS(STATIC_2158), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2161_0_addToStart_Return(EOS(STATIC_2161), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2161_0_addToStart_Return(EOS(STATIC_2161), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2164_0_main_New(EOS(STATIC_2164), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2164_0_main_New(EOS(STATIC_2164), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2167_0_main_Duplicate(EOS(STATIC_2167), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2167_0_main_Duplicate(EOS(STATIC_2167), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2170_0_main_Load(EOS(STATIC_2170), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2170_0_main_Load(EOS(STATIC_2170), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2172_0_main_Load(EOS(STATIC_2172), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58))) :|: TRUE f2172_0_main_Load(EOS(STATIC_2172), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58))) -> f2175_0_main_ArrayAccess(EOS(STATIC_2175), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2175_0_main_ArrayAccess(EOS(STATIC_2175), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) -> f2178_0_main_ArrayAccess(EOS(STATIC_2178), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) :|: TRUE f2178_0_main_ArrayAccess(EOS(STATIC_2178), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) -> f2182_0_main_Load(EOS(STATIC_2182), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: i59 < i58 f2182_0_main_Load(EOS(STATIC_2182), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2186_0_main_Inc(EOS(STATIC_2186), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i59) :|: TRUE f2186_0_main_Inc(EOS(STATIC_2186), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i59) -> f2189_0_main_InvokeMethod(EOS(STATIC_2189), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59 + 1, i59) :|: TRUE f2189_0_main_InvokeMethod(EOS(STATIC_2189), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2192_0__init__Load(EOS(STATIC_2192), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2192_0__init__Load(EOS(STATIC_2192), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2197_0__init__InvokeMethod(EOS(STATIC_2197), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2197_0__init__InvokeMethod(EOS(STATIC_2197), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2208_0__init__Load(EOS(STATIC_2208), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2208_0__init__Load(EOS(STATIC_2208), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2217_0__init__Load(EOS(STATIC_2217), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2217_0__init__Load(EOS(STATIC_2217), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2221_0__init__FieldAccess(EOS(STATIC_2221), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2221_0__init__FieldAccess(EOS(STATIC_2221), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2228_0__init__Load(EOS(STATIC_2228), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2228_0__init__Load(EOS(STATIC_2228), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2234_0__init__Load(EOS(STATIC_2234), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2234_0__init__Load(EOS(STATIC_2234), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2237_0__init__FieldAccess(EOS(STATIC_2237), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) :|: TRUE f2237_0__init__FieldAccess(EOS(STATIC_2237), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i59) -> f2242_0__init__Return(EOS(STATIC_2242), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2242_0__init__Return(EOS(STATIC_2242), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2248_0_main_Store(EOS(STATIC_2248), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2248_0_main_Store(EOS(STATIC_2248), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2249_0_main_Load(EOS(STATIC_2249), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2249_0_main_Load(EOS(STATIC_2249), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2258_0_main_Load(EOS(STATIC_2258), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2258_0_main_Load(EOS(STATIC_2258), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2267_0_main_InvokeMethod(EOS(STATIC_2267), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2267_0_main_InvokeMethod(EOS(STATIC_2267), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2273_0_addToStart_Load(EOS(STATIC_2273), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2273_0_addToStart_Load(EOS(STATIC_2273), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2302_0_addToStart_New(EOS(STATIC_2302), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2302_0_addToStart_New(EOS(STATIC_2302), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2312_0_addToStart_Duplicate(EOS(STATIC_2312), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2312_0_addToStart_Duplicate(EOS(STATIC_2312), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2317_0_addToStart_Load(EOS(STATIC_2317), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2317_0_addToStart_Load(EOS(STATIC_2317), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2322_0_addToStart_Load(EOS(STATIC_2322), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2322_0_addToStart_Load(EOS(STATIC_2322), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2326_0_addToStart_Load(EOS(STATIC_2326), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2326_0_addToStart_Load(EOS(STATIC_2326), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2330_0_addToStart_FieldAccess(EOS(STATIC_2330), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2330_0_addToStart_FieldAccess(EOS(STATIC_2330), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2334_0_addToStart_InvokeMethod(EOS(STATIC_2334), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2334_0_addToStart_InvokeMethod(EOS(STATIC_2334), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2337_0__init__Load(EOS(STATIC_2337), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2337_0__init__Load(EOS(STATIC_2337), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2343_0__init__Load(EOS(STATIC_2343), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2343_0__init__Load(EOS(STATIC_2343), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2345_0__init__FieldAccess(EOS(STATIC_2345), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2345_0__init__FieldAccess(EOS(STATIC_2345), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2348_0__init__Load(EOS(STATIC_2348), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2348_0__init__Load(EOS(STATIC_2348), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2350_0__init__InvokeMethod(EOS(STATIC_2350), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2350_0__init__InvokeMethod(EOS(STATIC_2350), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2371_0__init__Load(EOS(STATIC_2371), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2371_0__init__Load(EOS(STATIC_2371), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2374_0__init__Load(EOS(STATIC_2374), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2374_0__init__Load(EOS(STATIC_2374), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2377_0__init__FieldAccess(EOS(STATIC_2377), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2377_0__init__FieldAccess(EOS(STATIC_2377), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2381_0__init__Load(EOS(STATIC_2381), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2381_0__init__Load(EOS(STATIC_2381), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2382_0__init__Load(EOS(STATIC_2382), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2382_0__init__Load(EOS(STATIC_2382), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2383_0__init__FieldAccess(EOS(STATIC_2383), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2383_0__init__FieldAccess(EOS(STATIC_2383), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2384_0__init__Return(EOS(STATIC_2384), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2384_0__init__Return(EOS(STATIC_2384), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2385_0_addToStart_FieldAccess(EOS(STATIC_2385), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2385_0_addToStart_FieldAccess(EOS(STATIC_2385), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2386_0_addToStart_Return(EOS(STATIC_2386), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2386_0_addToStart_Return(EOS(STATIC_2386), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2387_0_main_New(EOS(STATIC_2387), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2387_0_main_New(EOS(STATIC_2387), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2388_0_main_Duplicate(EOS(STATIC_2388), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2388_0_main_Duplicate(EOS(STATIC_2388), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2389_0_main_Load(EOS(STATIC_2389), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2389_0_main_Load(EOS(STATIC_2389), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2390_0_main_Load(EOS(STATIC_2390), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58))) :|: TRUE f2390_0_main_Load(EOS(STATIC_2390), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58))) -> f2391_0_main_ArrayAccess(EOS(STATIC_2391), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2391_0_main_ArrayAccess(EOS(STATIC_2391), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58)), i70) -> f2392_0_main_ArrayAccess(EOS(STATIC_2392), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58)), i70) :|: TRUE f2392_0_main_ArrayAccess(EOS(STATIC_2392), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, java.lang.Object(ARRAY(i58)), i70) -> f2394_0_main_Load(EOS(STATIC_2394), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) :|: i70 < i58 f2394_0_main_Load(EOS(STATIC_2394), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70) -> f2396_0_main_Inc(EOS(STATIC_2396), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i70) :|: TRUE f2396_0_main_Inc(EOS(STATIC_2396), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70, i70) -> f2397_0_main_InvokeMethod(EOS(STATIC_2397), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i70 + 1, i70) :|: TRUE f2397_0_main_InvokeMethod(EOS(STATIC_2397), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2399_0__init__Load(EOS(STATIC_2399), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2399_0__init__Load(EOS(STATIC_2399), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2401_0__init__InvokeMethod(EOS(STATIC_2401), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2401_0__init__InvokeMethod(EOS(STATIC_2401), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2403_0__init__Load(EOS(STATIC_2403), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2403_0__init__Load(EOS(STATIC_2403), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2405_0__init__Load(EOS(STATIC_2405), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2405_0__init__Load(EOS(STATIC_2405), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2406_0__init__FieldAccess(EOS(STATIC_2406), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2406_0__init__FieldAccess(EOS(STATIC_2406), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2408_0__init__Load(EOS(STATIC_2408), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2408_0__init__Load(EOS(STATIC_2408), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2410_0__init__Load(EOS(STATIC_2410), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2410_0__init__Load(EOS(STATIC_2410), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2411_0__init__FieldAccess(EOS(STATIC_2411), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) :|: TRUE f2411_0__init__FieldAccess(EOS(STATIC_2411), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74, i70) -> f2413_0__init__Return(EOS(STATIC_2413), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2413_0__init__Return(EOS(STATIC_2413), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2415_0_main_Store(EOS(STATIC_2415), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2415_0_main_Store(EOS(STATIC_2415), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2416_0_main_Load(EOS(STATIC_2416), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2416_0_main_Load(EOS(STATIC_2416), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2418_0_main_Load(EOS(STATIC_2418), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2418_0_main_Load(EOS(STATIC_2418), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2420_0_main_InvokeMethod(EOS(STATIC_2420), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2420_0_main_InvokeMethod(EOS(STATIC_2420), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2422_0_addToStart_Load(EOS(STATIC_2422), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2422_0_addToStart_Load(EOS(STATIC_2422), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2431_0_addToStart_New(EOS(STATIC_2431), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2431_0_addToStart_New(EOS(STATIC_2431), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2437_0_addToStart_Duplicate(EOS(STATIC_2437), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2437_0_addToStart_Duplicate(EOS(STATIC_2437), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2442_0_addToStart_Load(EOS(STATIC_2442), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2442_0_addToStart_Load(EOS(STATIC_2442), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2444_0_addToStart_Load(EOS(STATIC_2444), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2444_0_addToStart_Load(EOS(STATIC_2444), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2446_0_addToStart_Load(EOS(STATIC_2446), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2446_0_addToStart_Load(EOS(STATIC_2446), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2448_0_addToStart_FieldAccess(EOS(STATIC_2448), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2448_0_addToStart_FieldAccess(EOS(STATIC_2448), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2450_0_addToStart_InvokeMethod(EOS(STATIC_2450), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2450_0_addToStart_InvokeMethod(EOS(STATIC_2450), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2452_0__init__Load(EOS(STATIC_2452), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2452_0__init__Load(EOS(STATIC_2452), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2455_0__init__Load(EOS(STATIC_2455), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2455_0__init__Load(EOS(STATIC_2455), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2456_0__init__FieldAccess(EOS(STATIC_2456), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2456_0__init__FieldAccess(EOS(STATIC_2456), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2466_0__init__Load(EOS(STATIC_2466), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2466_0__init__Load(EOS(STATIC_2466), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2467_0__init__InvokeMethod(EOS(STATIC_2467), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2467_0__init__InvokeMethod(EOS(STATIC_2467), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2468_0__init__Load(EOS(STATIC_2468), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2468_0__init__Load(EOS(STATIC_2468), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2469_0__init__Load(EOS(STATIC_2469), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2469_0__init__Load(EOS(STATIC_2469), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2470_0__init__FieldAccess(EOS(STATIC_2470), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2470_0__init__FieldAccess(EOS(STATIC_2470), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2472_0__init__Load(EOS(STATIC_2472), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2472_0__init__Load(EOS(STATIC_2472), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2474_0__init__Load(EOS(STATIC_2474), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2474_0__init__Load(EOS(STATIC_2474), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2477_0__init__FieldAccess(EOS(STATIC_2477), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2477_0__init__FieldAccess(EOS(STATIC_2477), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2480_0__init__Return(EOS(STATIC_2480), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2480_0__init__Return(EOS(STATIC_2480), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2481_0_addToStart_FieldAccess(EOS(STATIC_2481), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2481_0_addToStart_FieldAccess(EOS(STATIC_2481), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2482_0_addToStart_Return(EOS(STATIC_2482), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2482_0_addToStart_Return(EOS(STATIC_2482), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2483_0_main_Inc(EOS(STATIC_2483), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) :|: TRUE f2483_0_main_Inc(EOS(STATIC_2483), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74) -> f2484_0_main_JMP(EOS(STATIC_2484), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i74 + 1) :|: TRUE f2484_0_main_JMP(EOS(STATIC_2484), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i75) -> f2485_0_main_Load(EOS(STATIC_2485), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i75) :|: TRUE f2485_0_main_Load(EOS(STATIC_2485), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i75) -> f1883_0_main_Load(EOS(STATIC_1883), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i75) :|: TRUE f1883_0_main_Load(EOS(STATIC_1883), java.lang.Object(o795sub), java.lang.Object(o795sub), i56) -> f1893_0_main_Load(EOS(STATIC_1893), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56) :|: TRUE Combined rules. Obtained 1 IRulesP rules: f1893_0_main_Load(EOS(STATIC_1893), java.lang.Object(ARRAY(i58:0)), java.lang.Object(ARRAY(i58:0)), i56:0, i56:0) -> f1893_0_main_Load(EOS(STATIC_1893), java.lang.Object(ARRAY(i58:0)), java.lang.Object(ARRAY(i58:0)), i56:0 + 4, i56:0 + 4) :|: i58:0 > i56:0 + 1 && i58:0 > i56:0 + 2 && i58:0 > -1 Filtered constant ground arguments: f1893_0_main_Load(x1, x2, x3, x4, x5) -> f1893_0_main_Load(x2, x3, x4, x5) EOS(x1) -> EOS Filtered duplicate arguments: f1893_0_main_Load(x1, x2, x3, x4) -> f1893_0_main_Load(x2, x4) Finished conversion. Obtained 1 rules.P rules: f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0 + 4, i58:0) :|: i58:0 > i56:0 + 2 && i58:0 > -1 && i58:0 > i56:0 + 1 ---------------------------------------- (19) Obligation: Rules: f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0 + 4, i58:0) :|: i58:0 > i56:0 + 2 && i58:0 > -1 && i58:0 > i56:0 + 1 ---------------------------------------- (20) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (21) Obligation: Rules: f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), arith, i58:0) :|: i58:0 > i56:0 + 2 && i58:0 > -1 && i58:0 > i56:0 + 1 && arith = i56:0 + 4 ---------------------------------------- (22) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), arith, i58:0) :|: i58:0 > i56:0 + 2 && i58:0 > -1 && i58:0 > i56:0 + 1 && arith = i56:0 + 4 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (23) Obligation: Termination digraph: Nodes: (1) f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0)), arith, i58:0) :|: i58:0 > i56:0 + 2 && i58:0 > -1 && i58:0 > i56:0 + 1 && arith = i56:0 + 4 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f1893_0_main_Load(java.lang.Object(ARRAY(i58:0:0)), i56:0:0, i58:0:0) -> f1893_0_main_Load(java.lang.Object(ARRAY(i58:0:0)), i56:0:0 + 4, i58:0:0) :|: i58:0:0 > i56:0:0 + 2 && i58:0:0 > -1 && i58:0:0 > i56:0:0 + 1 ---------------------------------------- (26) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1893_0_main_Load(VARIABLE, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (27) Obligation: Rules: f1893_0_main_Load(c, i56:0:0, i58:0:0) -> f1893_0_main_Load(c1, c2, i58:0:0) :|: c2 = i56:0:0 + 4 && (c1 = 0 && c = 0) && (i58:0:0 > i56:0:0 + 2 && i58:0:0 > -1 && i58:0:0 > i56:0:0 + 1) ---------------------------------------- (28) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f1893_0_main_Load(x, x1, x2)] = c*x - x1 + x2 The following rules are decreasing: f1893_0_main_Load(c, i56:0:0, i58:0:0) -> f1893_0_main_Load(c1, c2, i58:0:0) :|: c2 = i56:0:0 + 4 && (c1 = 0 && c = 0) && (i58:0:0 > i56:0:0 + 2 && i58:0:0 > -1 && i58:0:0 > i56:0:0 + 1) The following rules are bounded: f1893_0_main_Load(c, i56:0:0, i58:0:0) -> f1893_0_main_Load(c1, c2, i58:0:0) :|: c2 = i56:0:0 + 4 && (c1 = 0 && c = 0) && (i58:0:0 > i56:0:0 + 2 && i58:0:0 > -1 && i58:0:0 > i56:0:0 + 1) ---------------------------------------- (29) YES