/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.jar /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.jar # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 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, 721 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 3 ms] (6) AND (7) JBCTerminationSCC (8) SCCToQDPProof [SOUND, 92 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) JBCTerminationSCC (13) SCCToQDPProof [SOUND, 65 ms] (14) QDP (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] (16) YES (17) JBCTerminationSCC (18) SCCToIRSProof [SOUND, 251 ms] (19) IRSwT (20) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (21) IRSwT (22) IRSwTTerminationDigraphProof [EQUIVALENT, 23 ms] (23) IRSwT (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] (25) IRSwT (26) TempFilterProof [SOUND, 19 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: f2480_0_outputList_NULL(EOS(STATIC_2480), java.lang.Object(o878sub), java.lang.Object(o878sub)) -> f2484_0_outputList_NULL(EOS(STATIC_2484), java.lang.Object(o878sub), java.lang.Object(o878sub)) :|: TRUE f2484_0_outputList_NULL(EOS(STATIC_2484), java.lang.Object(o878sub), java.lang.Object(o878sub)) -> f2487_0_outputList_Load(EOS(STATIC_2487), java.lang.Object(o878sub)) :|: TRUE f2487_0_outputList_Load(EOS(STATIC_2487), java.lang.Object(o878sub)) -> f2491_0_outputList_InvokeMethod(EOS(STATIC_2491), java.lang.Object(o878sub)) :|: TRUE f2491_0_outputList_InvokeMethod(EOS(STATIC_2491), java.lang.Object(o878sub)) -> f2495_0_access$000_Load(EOS(STATIC_2495), java.lang.Object(o878sub)) :|: TRUE f2495_0_access$000_Load(EOS(STATIC_2495), java.lang.Object(o878sub)) -> f2500_0_access$000_FieldAccess(EOS(STATIC_2500), java.lang.Object(o878sub)) :|: TRUE f2500_0_access$000_FieldAccess(EOS(STATIC_2500), java.lang.Object(LinkedList$Node(EOC, o891))) -> f2503_0_access$000_FieldAccess(EOS(STATIC_2503), java.lang.Object(LinkedList$Node(EOC, o891))) :|: TRUE f2503_0_access$000_FieldAccess(EOS(STATIC_2503), java.lang.Object(LinkedList$Node(EOC, o891))) -> f2506_0_access$000_Return(EOS(STATIC_2506), o891) :|: TRUE f2506_0_access$000_Return(EOS(STATIC_2506), o891) -> f2509_0_outputList_Store(EOS(STATIC_2509), o891) :|: TRUE f2509_0_outputList_Store(EOS(STATIC_2509), o891) -> f2511_0_outputList_JMP(EOS(STATIC_2511), o891) :|: TRUE f2511_0_outputList_JMP(EOS(STATIC_2511), o891) -> f2514_0_outputList_Load(EOS(STATIC_2514), o891) :|: TRUE f2514_0_outputList_Load(EOS(STATIC_2514), o891) -> f2476_0_outputList_Load(EOS(STATIC_2476), o891) :|: TRUE f2476_0_outputList_Load(EOS(STATIC_2476), o851) -> f2480_0_outputList_NULL(EOS(STATIC_2480), o851, o851) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f2480_0_outputList_NULL(EOS(STATIC_2480), java.lang.Object(LinkedList$Node(EOC, o891:0)), java.lang.Object(LinkedList$Node(EOC, o891:0))) -> f2480_0_outputList_NULL(EOS(STATIC_2480), o891:0, o891:0) :|: TRUE R rules: Filtered ground terms: f2480_0_outputList_NULL(x1, x2, x3) -> f2480_0_outputList_NULL(x2, x3) EOS(x1) -> EOS LinkedList$Node(x1, x2) -> LinkedList$Node(x2) Filtered duplicate args: f2480_0_outputList_NULL(x1, x2) -> f2480_0_outputList_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F2480_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o891:0:0))) -> F2480_0_OUTPUTLIST_NULL(o891:0:0) :|: TRUE R rules: ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: F2480_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o891:0:0))) -> F2480_0_OUTPUTLIST_NULL(o891: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: *F2480_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o891:0:0))) -> F2480_0_OUTPUTLIST_NULL(o891: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: f2430_0_size_NULL(EOS(STATIC_2430), java.lang.Object(o855sub), java.lang.Object(o855sub)) -> f2433_0_size_NULL(EOS(STATIC_2433), java.lang.Object(o855sub), java.lang.Object(o855sub)) :|: TRUE f2433_0_size_NULL(EOS(STATIC_2433), java.lang.Object(o855sub), java.lang.Object(o855sub)) -> f2436_0_size_Inc(EOS(STATIC_2436), java.lang.Object(o855sub)) :|: TRUE f2436_0_size_Inc(EOS(STATIC_2436), java.lang.Object(o855sub)) -> f2440_0_size_Load(EOS(STATIC_2440), java.lang.Object(o855sub)) :|: TRUE f2440_0_size_Load(EOS(STATIC_2440), java.lang.Object(o855sub)) -> f2450_0_size_InvokeMethod(EOS(STATIC_2450), java.lang.Object(o855sub)) :|: TRUE f2450_0_size_InvokeMethod(EOS(STATIC_2450), java.lang.Object(o855sub)) -> f2453_0_access$000_Load(EOS(STATIC_2453), java.lang.Object(o855sub)) :|: TRUE f2453_0_access$000_Load(EOS(STATIC_2453), java.lang.Object(o855sub)) -> f2460_0_access$000_FieldAccess(EOS(STATIC_2460), java.lang.Object(o855sub)) :|: TRUE f2460_0_access$000_FieldAccess(EOS(STATIC_2460), java.lang.Object(o859sub)) -> f2462_0_access$000_FieldAccess(EOS(STATIC_2462), java.lang.Object(o859sub)) :|: TRUE f2462_0_access$000_FieldAccess(EOS(STATIC_2462), java.lang.Object(LinkedList$Node(EOC, o865))) -> f2468_0_access$000_FieldAccess(EOS(STATIC_2468), java.lang.Object(LinkedList$Node(EOC, o865))) :|: TRUE f2468_0_access$000_FieldAccess(EOS(STATIC_2468), java.lang.Object(LinkedList$Node(EOC, o865))) -> f2472_0_access$000_Return(EOS(STATIC_2472), o865) :|: TRUE f2472_0_access$000_Return(EOS(STATIC_2472), o865) -> f2475_0_size_Store(EOS(STATIC_2475), o865) :|: TRUE f2475_0_size_Store(EOS(STATIC_2475), o865) -> f2479_0_size_JMP(EOS(STATIC_2479), o865) :|: TRUE f2479_0_size_JMP(EOS(STATIC_2479), o865) -> f2483_0_size_Load(EOS(STATIC_2483), o865) :|: TRUE f2483_0_size_Load(EOS(STATIC_2483), o865) -> f2426_0_size_Load(EOS(STATIC_2426), o865) :|: TRUE f2426_0_size_Load(EOS(STATIC_2426), o849) -> f2430_0_size_NULL(EOS(STATIC_2430), o849, o849) :|: TRUE R rules: Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: f2430_0_size_NULL(EOS(STATIC_2430), java.lang.Object(LinkedList$Node(EOC, o865:0)), java.lang.Object(LinkedList$Node(EOC, o865:0))) -> f2430_0_size_NULL(EOS(STATIC_2430), o865:0, o865:0) :|: TRUE R rules: Filtered ground terms: f2430_0_size_NULL(x1, x2, x3) -> f2430_0_size_NULL(x2, x3) EOS(x1) -> EOS LinkedList$Node(x1, x2) -> LinkedList$Node(x2) Filtered duplicate args: f2430_0_size_NULL(x1, x2) -> f2430_0_size_NULL(x2) Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: F2430_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o865:0:0))) -> F2430_0_SIZE_NULL(o865:0:0) :|: TRUE R rules: ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: F2430_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o865:0:0))) -> F2430_0_SIZE_NULL(o865: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: *F2430_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o865:0:0))) -> F2430_0_SIZE_NULL(o865: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: f2154_0_main_Load(EOS(STATIC_2154), java.lang.Object(o802sub), java.lang.Object(o802sub), i59, i59) -> f2155_0_main_ArrayLength(EOS(STATIC_2155), java.lang.Object(o802sub), java.lang.Object(o802sub), i59, i59, java.lang.Object(o802sub)) :|: TRUE f2155_0_main_ArrayLength(EOS(STATIC_2155), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, java.lang.Object(ARRAY(i61))) -> f2156_0_main_ArrayLength(EOS(STATIC_2156), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, java.lang.Object(ARRAY(i61))) :|: i61 >= 0 f2156_0_main_ArrayLength(EOS(STATIC_2156), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, java.lang.Object(ARRAY(i61))) -> f2157_0_main_GE(EOS(STATIC_2157), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, i61) :|: i61 >= 0 f2157_0_main_GE(EOS(STATIC_2157), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, i61) -> f2159_0_main_GE(EOS(STATIC_2159), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, i61) :|: i59 < i61 f2159_0_main_GE(EOS(STATIC_2159), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59, i61) -> f2161_0_main_New(EOS(STATIC_2161), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) :|: i59 < i61 f2161_0_main_New(EOS(STATIC_2161), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) -> f2163_0_main_Duplicate(EOS(STATIC_2163), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) :|: TRUE f2163_0_main_Duplicate(EOS(STATIC_2163), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) -> f2165_0_main_Load(EOS(STATIC_2165), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) :|: TRUE f2165_0_main_Load(EOS(STATIC_2165), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) -> f2166_0_main_Load(EOS(STATIC_2166), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61))) :|: TRUE f2166_0_main_Load(EOS(STATIC_2166), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61))) -> f2168_0_main_ArrayAccess(EOS(STATIC_2168), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61)), i59) :|: TRUE f2168_0_main_ArrayAccess(EOS(STATIC_2168), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61)), i59) -> f2170_0_main_ArrayAccess(EOS(STATIC_2170), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61)), i59) :|: TRUE f2170_0_main_ArrayAccess(EOS(STATIC_2170), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, java.lang.Object(ARRAY(i61)), i59) -> f2173_0_main_Load(EOS(STATIC_2173), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) :|: i59 < i61 f2173_0_main_Load(EOS(STATIC_2173), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59) -> f2176_0_main_Inc(EOS(STATIC_2176), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59) :|: TRUE f2176_0_main_Inc(EOS(STATIC_2176), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59, i59) -> f2178_0_main_InvokeMethod(EOS(STATIC_2178), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i59 + 1, i59) :|: TRUE f2178_0_main_InvokeMethod(EOS(STATIC_2178), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2181_0__init__Load(EOS(STATIC_2181), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2181_0__init__Load(EOS(STATIC_2181), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2187_0__init__InvokeMethod(EOS(STATIC_2187), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2187_0__init__InvokeMethod(EOS(STATIC_2187), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2193_0__init__Load(EOS(STATIC_2193), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2193_0__init__Load(EOS(STATIC_2193), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2201_0__init__Load(EOS(STATIC_2201), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2201_0__init__Load(EOS(STATIC_2201), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2206_0__init__FieldAccess(EOS(STATIC_2206), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2206_0__init__FieldAccess(EOS(STATIC_2206), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2211_0__init__Load(EOS(STATIC_2211), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2211_0__init__Load(EOS(STATIC_2211), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2249_0__init__Load(EOS(STATIC_2249), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2249_0__init__Load(EOS(STATIC_2249), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2255_0__init__FieldAccess(EOS(STATIC_2255), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) :|: TRUE f2255_0__init__FieldAccess(EOS(STATIC_2255), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i59) -> f2262_0__init__Return(EOS(STATIC_2262), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2262_0__init__Return(EOS(STATIC_2262), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2266_0_main_Store(EOS(STATIC_2266), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2266_0_main_Store(EOS(STATIC_2266), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2269_0_main_Load(EOS(STATIC_2269), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2269_0_main_Load(EOS(STATIC_2269), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2304_0_main_Load(EOS(STATIC_2304), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2304_0_main_Load(EOS(STATIC_2304), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2308_0_main_InvokeMethod(EOS(STATIC_2308), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2308_0_main_InvokeMethod(EOS(STATIC_2308), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2314_0_addToStart_Load(EOS(STATIC_2314), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2314_0_addToStart_Load(EOS(STATIC_2314), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2333_0_addToStart_New(EOS(STATIC_2333), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2333_0_addToStart_New(EOS(STATIC_2333), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2339_0_addToStart_Duplicate(EOS(STATIC_2339), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2339_0_addToStart_Duplicate(EOS(STATIC_2339), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2349_0_addToStart_Load(EOS(STATIC_2349), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2349_0_addToStart_Load(EOS(STATIC_2349), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2354_0_addToStart_Load(EOS(STATIC_2354), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2354_0_addToStart_Load(EOS(STATIC_2354), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2360_0_addToStart_Load(EOS(STATIC_2360), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2360_0_addToStart_Load(EOS(STATIC_2360), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2363_0_addToStart_FieldAccess(EOS(STATIC_2363), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2363_0_addToStart_FieldAccess(EOS(STATIC_2363), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2367_0_addToStart_InvokeMethod(EOS(STATIC_2367), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2367_0_addToStart_InvokeMethod(EOS(STATIC_2367), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2371_0__init__Load(EOS(STATIC_2371), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2371_0__init__Load(EOS(STATIC_2371), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2378_0__init__Load(EOS(STATIC_2378), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2378_0__init__Load(EOS(STATIC_2378), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2381_0__init__FieldAccess(EOS(STATIC_2381), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2381_0__init__FieldAccess(EOS(STATIC_2381), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2383_0__init__Load(EOS(STATIC_2383), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2383_0__init__Load(EOS(STATIC_2383), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2386_0__init__InvokeMethod(EOS(STATIC_2386), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2386_0__init__InvokeMethod(EOS(STATIC_2386), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2389_0__init__Load(EOS(STATIC_2389), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2389_0__init__Load(EOS(STATIC_2389), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2392_0__init__Load(EOS(STATIC_2392), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2392_0__init__Load(EOS(STATIC_2392), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2395_0__init__FieldAccess(EOS(STATIC_2395), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2395_0__init__FieldAccess(EOS(STATIC_2395), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2398_0__init__Load(EOS(STATIC_2398), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2398_0__init__Load(EOS(STATIC_2398), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2400_0__init__Load(EOS(STATIC_2400), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2400_0__init__Load(EOS(STATIC_2400), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2403_0__init__FieldAccess(EOS(STATIC_2403), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2403_0__init__FieldAccess(EOS(STATIC_2403), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2405_0__init__Return(EOS(STATIC_2405), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2405_0__init__Return(EOS(STATIC_2405), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2408_0_addToStart_FieldAccess(EOS(STATIC_2408), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2408_0_addToStart_FieldAccess(EOS(STATIC_2408), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2411_0_addToStart_Return(EOS(STATIC_2411), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2411_0_addToStart_Return(EOS(STATIC_2411), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2414_0_main_New(EOS(STATIC_2414), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2414_0_main_New(EOS(STATIC_2414), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2417_0_main_Duplicate(EOS(STATIC_2417), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2417_0_main_Duplicate(EOS(STATIC_2417), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2428_0_main_Load(EOS(STATIC_2428), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2428_0_main_Load(EOS(STATIC_2428), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2431_0_main_Load(EOS(STATIC_2431), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61))) :|: TRUE f2431_0_main_Load(EOS(STATIC_2431), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61))) -> f2435_0_main_ArrayAccess(EOS(STATIC_2435), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2435_0_main_ArrayAccess(EOS(STATIC_2435), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61)), i62) -> f2438_0_main_ArrayAccess(EOS(STATIC_2438), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61)), i62) :|: TRUE f2438_0_main_ArrayAccess(EOS(STATIC_2438), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, java.lang.Object(ARRAY(i61)), i62) -> f2442_0_main_Load(EOS(STATIC_2442), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) :|: i62 < i61 f2442_0_main_Load(EOS(STATIC_2442), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62) -> f2452_0_main_Inc(EOS(STATIC_2452), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i62) :|: TRUE f2452_0_main_Inc(EOS(STATIC_2452), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62, i62) -> f2455_0_main_InvokeMethod(EOS(STATIC_2455), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i62 + 1, i62) :|: TRUE f2455_0_main_InvokeMethod(EOS(STATIC_2455), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2458_0__init__Load(EOS(STATIC_2458), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2458_0__init__Load(EOS(STATIC_2458), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2464_0__init__InvokeMethod(EOS(STATIC_2464), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2464_0__init__InvokeMethod(EOS(STATIC_2464), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2470_0__init__Load(EOS(STATIC_2470), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2470_0__init__Load(EOS(STATIC_2470), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2474_0__init__Load(EOS(STATIC_2474), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2474_0__init__Load(EOS(STATIC_2474), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2477_0__init__FieldAccess(EOS(STATIC_2477), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2477_0__init__FieldAccess(EOS(STATIC_2477), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2481_0__init__Load(EOS(STATIC_2481), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2481_0__init__Load(EOS(STATIC_2481), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2486_0__init__Load(EOS(STATIC_2486), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2486_0__init__Load(EOS(STATIC_2486), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2489_0__init__FieldAccess(EOS(STATIC_2489), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) :|: TRUE f2489_0__init__FieldAccess(EOS(STATIC_2489), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i62) -> f2493_0__init__Return(EOS(STATIC_2493), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2493_0__init__Return(EOS(STATIC_2493), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2497_0_main_Store(EOS(STATIC_2497), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2497_0_main_Store(EOS(STATIC_2497), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2498_0_main_Load(EOS(STATIC_2498), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2498_0_main_Load(EOS(STATIC_2498), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2501_0_main_Load(EOS(STATIC_2501), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2501_0_main_Load(EOS(STATIC_2501), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2504_0_main_InvokeMethod(EOS(STATIC_2504), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2504_0_main_InvokeMethod(EOS(STATIC_2504), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2507_0_addToStart_Load(EOS(STATIC_2507), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2507_0_addToStart_Load(EOS(STATIC_2507), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2512_0_addToStart_New(EOS(STATIC_2512), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2512_0_addToStart_New(EOS(STATIC_2512), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2515_0_addToStart_Duplicate(EOS(STATIC_2515), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2515_0_addToStart_Duplicate(EOS(STATIC_2515), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2517_0_addToStart_Load(EOS(STATIC_2517), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2517_0_addToStart_Load(EOS(STATIC_2517), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2519_0_addToStart_Load(EOS(STATIC_2519), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2519_0_addToStart_Load(EOS(STATIC_2519), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2521_0_addToStart_Load(EOS(STATIC_2521), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2521_0_addToStart_Load(EOS(STATIC_2521), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2523_0_addToStart_FieldAccess(EOS(STATIC_2523), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2523_0_addToStart_FieldAccess(EOS(STATIC_2523), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2525_0_addToStart_InvokeMethod(EOS(STATIC_2525), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2525_0_addToStart_InvokeMethod(EOS(STATIC_2525), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2527_0__init__Load(EOS(STATIC_2527), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2527_0__init__Load(EOS(STATIC_2527), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2530_0__init__Load(EOS(STATIC_2530), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2530_0__init__Load(EOS(STATIC_2530), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2532_0__init__FieldAccess(EOS(STATIC_2532), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2532_0__init__FieldAccess(EOS(STATIC_2532), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2536_0__init__Load(EOS(STATIC_2536), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2536_0__init__Load(EOS(STATIC_2536), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2538_0__init__InvokeMethod(EOS(STATIC_2538), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2538_0__init__InvokeMethod(EOS(STATIC_2538), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2540_0__init__Load(EOS(STATIC_2540), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2540_0__init__Load(EOS(STATIC_2540), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2542_0__init__Load(EOS(STATIC_2542), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2542_0__init__Load(EOS(STATIC_2542), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2544_0__init__FieldAccess(EOS(STATIC_2544), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2544_0__init__FieldAccess(EOS(STATIC_2544), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2549_0__init__Load(EOS(STATIC_2549), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2549_0__init__Load(EOS(STATIC_2549), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2550_0__init__Load(EOS(STATIC_2550), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2550_0__init__Load(EOS(STATIC_2550), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2551_0__init__FieldAccess(EOS(STATIC_2551), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2551_0__init__FieldAccess(EOS(STATIC_2551), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2561_0__init__Return(EOS(STATIC_2561), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2561_0__init__Return(EOS(STATIC_2561), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2563_0_addToStart_FieldAccess(EOS(STATIC_2563), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2563_0_addToStart_FieldAccess(EOS(STATIC_2563), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2570_0_addToStart_Return(EOS(STATIC_2570), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2570_0_addToStart_Return(EOS(STATIC_2570), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2572_0_main_New(EOS(STATIC_2572), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2572_0_main_New(EOS(STATIC_2572), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2573_0_main_Duplicate(EOS(STATIC_2573), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2573_0_main_Duplicate(EOS(STATIC_2573), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2575_0_main_Load(EOS(STATIC_2575), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2575_0_main_Load(EOS(STATIC_2575), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2581_0_main_Load(EOS(STATIC_2581), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61))) :|: TRUE f2581_0_main_Load(EOS(STATIC_2581), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61))) -> f2582_0_main_ArrayAccess(EOS(STATIC_2582), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2582_0_main_ArrayAccess(EOS(STATIC_2582), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61)), i73) -> f2584_0_main_ArrayAccess(EOS(STATIC_2584), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61)), i73) :|: TRUE f2584_0_main_ArrayAccess(EOS(STATIC_2584), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, java.lang.Object(ARRAY(i61)), i73) -> f2587_0_main_Load(EOS(STATIC_2587), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) :|: i73 < i61 f2587_0_main_Load(EOS(STATIC_2587), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73) -> f2590_0_main_Inc(EOS(STATIC_2590), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i73) :|: TRUE f2590_0_main_Inc(EOS(STATIC_2590), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73, i73) -> f2591_0_main_InvokeMethod(EOS(STATIC_2591), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i73 + 1, i73) :|: TRUE f2591_0_main_InvokeMethod(EOS(STATIC_2591), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2593_0__init__Load(EOS(STATIC_2593), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2593_0__init__Load(EOS(STATIC_2593), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2595_0__init__InvokeMethod(EOS(STATIC_2595), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2595_0__init__InvokeMethod(EOS(STATIC_2595), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2599_0__init__Load(EOS(STATIC_2599), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2599_0__init__Load(EOS(STATIC_2599), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2601_0__init__Load(EOS(STATIC_2601), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2601_0__init__Load(EOS(STATIC_2601), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2612_0__init__FieldAccess(EOS(STATIC_2612), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2612_0__init__FieldAccess(EOS(STATIC_2612), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2618_0__init__Load(EOS(STATIC_2618), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2618_0__init__Load(EOS(STATIC_2618), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2622_0__init__Load(EOS(STATIC_2622), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2622_0__init__Load(EOS(STATIC_2622), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2624_0__init__FieldAccess(EOS(STATIC_2624), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) :|: TRUE f2624_0__init__FieldAccess(EOS(STATIC_2624), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76, i73) -> f2628_0__init__Return(EOS(STATIC_2628), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2628_0__init__Return(EOS(STATIC_2628), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2630_0_main_Store(EOS(STATIC_2630), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2630_0_main_Store(EOS(STATIC_2630), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2632_0_main_Load(EOS(STATIC_2632), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2632_0_main_Load(EOS(STATIC_2632), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2649_0_main_Load(EOS(STATIC_2649), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2649_0_main_Load(EOS(STATIC_2649), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2652_0_main_InvokeMethod(EOS(STATIC_2652), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2652_0_main_InvokeMethod(EOS(STATIC_2652), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2656_0_addToStart_Load(EOS(STATIC_2656), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2656_0_addToStart_Load(EOS(STATIC_2656), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2673_0_addToStart_New(EOS(STATIC_2673), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2673_0_addToStart_New(EOS(STATIC_2673), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2675_0_addToStart_Duplicate(EOS(STATIC_2675), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2675_0_addToStart_Duplicate(EOS(STATIC_2675), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2677_0_addToStart_Load(EOS(STATIC_2677), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2677_0_addToStart_Load(EOS(STATIC_2677), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2679_0_addToStart_Load(EOS(STATIC_2679), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2679_0_addToStart_Load(EOS(STATIC_2679), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2681_0_addToStart_Load(EOS(STATIC_2681), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2681_0_addToStart_Load(EOS(STATIC_2681), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2683_0_addToStart_FieldAccess(EOS(STATIC_2683), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2683_0_addToStart_FieldAccess(EOS(STATIC_2683), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2685_0_addToStart_InvokeMethod(EOS(STATIC_2685), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2685_0_addToStart_InvokeMethod(EOS(STATIC_2685), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2687_0__init__Load(EOS(STATIC_2687), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2687_0__init__Load(EOS(STATIC_2687), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2690_0__init__Load(EOS(STATIC_2690), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2690_0__init__Load(EOS(STATIC_2690), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2691_0__init__FieldAccess(EOS(STATIC_2691), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2691_0__init__FieldAccess(EOS(STATIC_2691), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2692_0__init__Load(EOS(STATIC_2692), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2692_0__init__Load(EOS(STATIC_2692), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2693_0__init__InvokeMethod(EOS(STATIC_2693), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2693_0__init__InvokeMethod(EOS(STATIC_2693), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2694_0__init__Load(EOS(STATIC_2694), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2694_0__init__Load(EOS(STATIC_2694), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2695_0__init__Load(EOS(STATIC_2695), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2695_0__init__Load(EOS(STATIC_2695), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2696_0__init__FieldAccess(EOS(STATIC_2696), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2696_0__init__FieldAccess(EOS(STATIC_2696), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2697_0__init__Load(EOS(STATIC_2697), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2697_0__init__Load(EOS(STATIC_2697), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2698_0__init__Load(EOS(STATIC_2698), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2698_0__init__Load(EOS(STATIC_2698), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2699_0__init__FieldAccess(EOS(STATIC_2699), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2699_0__init__FieldAccess(EOS(STATIC_2699), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2700_0__init__Return(EOS(STATIC_2700), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2700_0__init__Return(EOS(STATIC_2700), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2701_0_addToStart_FieldAccess(EOS(STATIC_2701), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2701_0_addToStart_FieldAccess(EOS(STATIC_2701), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2712_0_addToStart_Return(EOS(STATIC_2712), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2712_0_addToStart_Return(EOS(STATIC_2712), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2713_0_main_Inc(EOS(STATIC_2713), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) :|: TRUE f2713_0_main_Inc(EOS(STATIC_2713), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76) -> f2714_0_main_JMP(EOS(STATIC_2714), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i76 + 1) :|: TRUE f2714_0_main_JMP(EOS(STATIC_2714), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i77) -> f2720_0_main_Load(EOS(STATIC_2720), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i77) :|: TRUE f2720_0_main_Load(EOS(STATIC_2720), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i77) -> f2153_0_main_Load(EOS(STATIC_2153), java.lang.Object(ARRAY(i61)), java.lang.Object(ARRAY(i61)), i77) :|: TRUE f2153_0_main_Load(EOS(STATIC_2153), java.lang.Object(o802sub), java.lang.Object(o802sub), i59) -> f2154_0_main_Load(EOS(STATIC_2154), java.lang.Object(o802sub), java.lang.Object(o802sub), i59, i59) :|: TRUE Combined rules. Obtained 1 IRulesP rules: f2154_0_main_Load(EOS(STATIC_2154), java.lang.Object(ARRAY(i61:0)), java.lang.Object(ARRAY(i61:0)), i59:0, i59:0) -> f2154_0_main_Load(EOS(STATIC_2154), java.lang.Object(ARRAY(i61:0)), java.lang.Object(ARRAY(i61:0)), i59:0 + 4, i59:0 + 4) :|: i61:0 > i59:0 + 1 && i61:0 > i59:0 + 2 && i61:0 > -1 Filtered constant ground arguments: f2154_0_main_Load(x1, x2, x3, x4, x5) -> f2154_0_main_Load(x2, x3, x4, x5) EOS(x1) -> EOS Filtered duplicate arguments: f2154_0_main_Load(x1, x2, x3, x4) -> f2154_0_main_Load(x2, x4) Finished conversion. Obtained 1 rules.P rules: f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0, i61:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0 + 4, i61:0) :|: i61:0 > i59:0 + 2 && i61:0 > -1 && i61:0 > i59:0 + 1 ---------------------------------------- (19) Obligation: Rules: f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0, i61:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0 + 4, i61:0) :|: i61:0 > i59:0 + 2 && i61:0 > -1 && i61:0 > i59:0 + 1 ---------------------------------------- (20) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (21) Obligation: Rules: f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0, i61:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), arith, i61:0) :|: i61:0 > i59:0 + 2 && i61:0 > -1 && i61:0 > i59:0 + 1 && arith = i59:0 + 4 ---------------------------------------- (22) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0, i61:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), arith, i61:0) :|: i61:0 > i59:0 + 2 && i61:0 > -1 && i61:0 > i59:0 + 1 && arith = i59:0 + 4 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (23) Obligation: Termination digraph: Nodes: (1) f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), i59:0, i61:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0)), arith, i61:0) :|: i61:0 > i59:0 + 2 && i61:0 > -1 && i61:0 > i59:0 + 1 && arith = i59:0 + 4 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (24) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (25) Obligation: Rules: f2154_0_main_Load(java.lang.Object(ARRAY(i61:0:0)), i59:0:0, i61:0:0) -> f2154_0_main_Load(java.lang.Object(ARRAY(i61:0:0)), i59:0:0 + 4, i61:0:0) :|: i61:0:0 > i59:0:0 + 2 && i61:0:0 > -1 && i61:0:0 > i59:0:0 + 1 ---------------------------------------- (26) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f2154_0_main_Load(VARIABLE, INTEGER, INTEGER) java.lang.Object(VARIABLE) ARRAY(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (27) Obligation: Rules: f2154_0_main_Load(c, i59:0:0, i61:0:0) -> f2154_0_main_Load(c1, c2, i61:0:0) :|: c2 = i59:0:0 + 4 && (c1 = 0 && c = 0) && (i61:0:0 > i59:0:0 + 2 && i61:0:0 > -1 && i61:0:0 > i59:0:0 + 1) ---------------------------------------- (28) PolynomialOrderProcessor (EQUIVALENT) Found the following polynomial interpretation: [f2154_0_main_Load(x, x1, x2)] = c*x - x1 + x2 The following rules are decreasing: f2154_0_main_Load(c, i59:0:0, i61:0:0) -> f2154_0_main_Load(c1, c2, i61:0:0) :|: c2 = i59:0:0 + 4 && (c1 = 0 && c = 0) && (i61:0:0 > i59:0:0 + 2 && i61:0:0 > -1 && i61:0:0 > i59:0:0 + 1) The following rules are bounded: f2154_0_main_Load(c, i59:0:0, i61:0:0) -> f2154_0_main_Load(c1, c2, i61:0:0) :|: c2 = i59:0:0 + 4 && (c1 = 0 && c = 0) && (i61:0:0 > i59:0:0 + 2 && i61:0:0 > -1 && i61:0:0 > i59:0:0 + 1) ---------------------------------------- (29) YES