9.70/3.41 YES 9.70/3.43 proof of /export/starexec/sandbox/benchmark/theBenchmark.jar 9.70/3.43 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 9.70/3.43 9.70/3.43 9.70/3.43 termination of the given Bare JBC problem could be proven: 9.70/3.43 9.70/3.43 (0) Bare JBC problem 9.70/3.43 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 9.70/3.43 (2) JBC problem 9.70/3.43 (3) JBCToGraph [EQUIVALENT, 734 ms] 9.70/3.43 (4) JBCTerminationGraph 9.70/3.43 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 9.70/3.43 (6) AND 9.70/3.43 (7) JBCTerminationSCC 9.70/3.43 (8) SCCToQDPProof [SOUND, 86 ms] 9.70/3.43 (9) QDP 9.70/3.43 (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.70/3.43 (11) YES 9.70/3.43 (12) JBCTerminationSCC 9.70/3.43 (13) SCCToQDPProof [SOUND, 63 ms] 9.70/3.43 (14) QDP 9.70/3.43 (15) QDPSizeChangeProof [EQUIVALENT, 0 ms] 9.70/3.43 (16) YES 9.70/3.43 (17) JBCTerminationSCC 9.70/3.43 (18) SCCToIRSProof [SOUND, 241 ms] 9.70/3.43 (19) IRSwT 9.70/3.43 (20) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 9.70/3.43 (21) IRSwT 9.70/3.43 (22) IRSwTTerminationDigraphProof [EQUIVALENT, 23 ms] 9.70/3.43 (23) IRSwT 9.70/3.43 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 9.70/3.43 (25) IRSwT 9.70/3.43 (26) TempFilterProof [SOUND, 17 ms] 9.70/3.43 (27) IntTRS 9.70/3.43 (28) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 9.70/3.43 (29) YES 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (0) 9.70/3.43 Obligation: 9.70/3.43 need to prove termination of the following program: 9.70/3.43 public class Entry 9.70/3.43 { 9.70/3.43 private String item; 9.70/3.43 private int count; 9.70/3.43 9.70/3.43 public Entry(String itemData, int countData) 9.70/3.43 { 9.70/3.43 item = itemData; 9.70/3.43 count = countData; 9.70/3.43 } 9.70/3.43 9.70/3.43 public String toString( ) 9.70/3.43 { 9.70/3.43 return (item + " " + count); 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean equals(Object otherObject) 9.70/3.43 { 9.70/3.43 if (otherObject == null) 9.70/3.43 return false; 9.70/3.43 else if (getClass( ) != otherObject.getClass( )) 9.70/3.43 return false; 9.70/3.43 else 9.70/3.43 { 9.70/3.43 Entry otherEntry = (Entry)otherObject; 9.70/3.43 return (item.equals(otherEntry.item) 9.70/3.43 && (count == otherEntry.count)); 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 // 9.70/3.43 } 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 public class LinkedList 9.70/3.43 { 9.70/3.43 private class Node 9.70/3.43 { 9.70/3.43 private T data; 9.70/3.43 private Node link; 9.70/3.43 9.70/3.43 public Node( ) 9.70/3.43 { 9.70/3.43 data = null; 9.70/3.43 link = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 public Node(T newData, Node linkValue) 9.70/3.43 { 9.70/3.43 data = newData; 9.70/3.43 link = linkValue; 9.70/3.43 } 9.70/3.43 }//End of Node inner class 9.70/3.43 9.70/3.43 private Node head; 9.70/3.43 9.70/3.43 public LinkedList( ) 9.70/3.43 { 9.70/3.43 head = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Adds a node at the start of the list with the specified data. 9.70/3.43 The added node will be the first node in the list. 9.70/3.43 */ 9.70/3.43 public void addToStart(T itemData) 9.70/3.43 { 9.70/3.43 this.head = new Node(itemData, this.head); 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Removes the head node and returns true if the list contains at least 9.70/3.43 one node. Returns false if the list is empty. 9.70/3.43 */ 9.70/3.43 public boolean deleteHeadNode( ) 9.70/3.43 { 9.70/3.43 if (head != null) 9.70/3.43 { 9.70/3.43 head = head.link; 9.70/3.43 return true; 9.70/3.43 } 9.70/3.43 else 9.70/3.43 return false; 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Returns the number of nodes in the list. 9.70/3.43 */ 9.70/3.43 public int size( ) 9.70/3.43 { 9.70/3.43 int count = 0; 9.70/3.43 Node position = head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 count++; 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 return count; 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean contains(T item) 9.70/3.43 { 9.70/3.43 return (find(item) != null); 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Finds the first node containing the target item, and returns a 9.70/3.43 reference to that node. If target is not in the list, null is returned. 9.70/3.43 */ 9.70/3.43 private Node find(T target) 9.70/3.43 { 9.70/3.43 Node position = head; 9.70/3.43 T itemAtPosition; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 itemAtPosition = position.data; 9.70/3.43 if (itemAtPosition.equals(target)) 9.70/3.43 return position; 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 return null; //target was not found 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Finds the first node containing the target and returns a reference 9.70/3.43 to the data in that node. If target is not in the list, null is returned. 9.70/3.43 */ 9.70/3.43 public T findData(T target) 9.70/3.43 { 9.70/3.43 return find(target).data; 9.70/3.43 } 9.70/3.43 9.70/3.43 public void outputList( ) 9.70/3.43 { 9.70/3.43 Node position = head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 //System.out.println(position.data); 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean isEmpty( ) 9.70/3.43 { 9.70/3.43 return (head == null); 9.70/3.43 } 9.70/3.43 9.70/3.43 public void clear( ) 9.70/3.43 { 9.70/3.43 head = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 /* 9.70/3.43 For two lists to be equal they must contain the same data items in 9.70/3.43 the same order. The equals method of T is used to compare data items. 9.70/3.43 */ 9.70/3.43 public boolean equals(Object otherObject) 9.70/3.43 { 9.70/3.43 if (!(otherObject instanceof LinkedList)) 9.70/3.43 return false; 9.70/3.43 else 9.70/3.43 { 9.70/3.43 LinkedList otherList = (LinkedList)otherObject; 9.70/3.43 if (size( ) != otherList.size( )) 9.70/3.43 return false; 9.70/3.43 Node position = head; 9.70/3.43 Node otherPosition = otherList.head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 if (!(position.data.equals(otherPosition.data))) 9.70/3.43 return false; 9.70/3.43 position = position.link; 9.70/3.43 otherPosition = otherPosition.link; 9.70/3.43 } 9.70/3.43 return true; //no mismatch was not found 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 public static void main(String[] args) 9.70/3.43 { 9.70/3.43 LinkedList list = new LinkedList( ); 9.70/3.43 9.70/3.43 for (int i = 1; i < args.length; i++) { 9.70/3.43 Entry entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 } 9.70/3.43 9.70/3.43 list.size(); // remove it! 9.70/3.43 //System.out.println("List has " + list.size( ) 9.70/3.43 // + " nodes."); 9.70/3.43 list.outputList( ); 9.70/3.43 //System.out.println("End of list."); 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (1) BareJBCToJBCProof (EQUIVALENT) 9.70/3.43 initialized classpath 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (2) 9.70/3.43 Obligation: 9.70/3.43 need to prove termination of the following program: 9.70/3.43 public class Entry 9.70/3.43 { 9.70/3.43 private String item; 9.70/3.43 private int count; 9.70/3.43 9.70/3.43 public Entry(String itemData, int countData) 9.70/3.43 { 9.70/3.43 item = itemData; 9.70/3.43 count = countData; 9.70/3.43 } 9.70/3.43 9.70/3.43 public String toString( ) 9.70/3.43 { 9.70/3.43 return (item + " " + count); 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean equals(Object otherObject) 9.70/3.43 { 9.70/3.43 if (otherObject == null) 9.70/3.43 return false; 9.70/3.43 else if (getClass( ) != otherObject.getClass( )) 9.70/3.43 return false; 9.70/3.43 else 9.70/3.43 { 9.70/3.43 Entry otherEntry = (Entry)otherObject; 9.70/3.43 return (item.equals(otherEntry.item) 9.70/3.43 && (count == otherEntry.count)); 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 // 9.70/3.43 } 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 public class LinkedList 9.70/3.43 { 9.70/3.43 private class Node 9.70/3.43 { 9.70/3.43 private T data; 9.70/3.43 private Node link; 9.70/3.43 9.70/3.43 public Node( ) 9.70/3.43 { 9.70/3.43 data = null; 9.70/3.43 link = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 public Node(T newData, Node linkValue) 9.70/3.43 { 9.70/3.43 data = newData; 9.70/3.43 link = linkValue; 9.70/3.43 } 9.70/3.43 }//End of Node inner class 9.70/3.43 9.70/3.43 private Node head; 9.70/3.43 9.70/3.43 public LinkedList( ) 9.70/3.43 { 9.70/3.43 head = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Adds a node at the start of the list with the specified data. 9.70/3.43 The added node will be the first node in the list. 9.70/3.43 */ 9.70/3.43 public void addToStart(T itemData) 9.70/3.43 { 9.70/3.43 this.head = new Node(itemData, this.head); 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Removes the head node and returns true if the list contains at least 9.70/3.43 one node. Returns false if the list is empty. 9.70/3.43 */ 9.70/3.43 public boolean deleteHeadNode( ) 9.70/3.43 { 9.70/3.43 if (head != null) 9.70/3.43 { 9.70/3.43 head = head.link; 9.70/3.43 return true; 9.70/3.43 } 9.70/3.43 else 9.70/3.43 return false; 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Returns the number of nodes in the list. 9.70/3.43 */ 9.70/3.43 public int size( ) 9.70/3.43 { 9.70/3.43 int count = 0; 9.70/3.43 Node position = head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 count++; 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 return count; 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean contains(T item) 9.70/3.43 { 9.70/3.43 return (find(item) != null); 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Finds the first node containing the target item, and returns a 9.70/3.43 reference to that node. If target is not in the list, null is returned. 9.70/3.43 */ 9.70/3.43 private Node find(T target) 9.70/3.43 { 9.70/3.43 Node position = head; 9.70/3.43 T itemAtPosition; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 itemAtPosition = position.data; 9.70/3.43 if (itemAtPosition.equals(target)) 9.70/3.43 return position; 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 return null; //target was not found 9.70/3.43 } 9.70/3.43 9.70/3.43 /** 9.70/3.43 Finds the first node containing the target and returns a reference 9.70/3.43 to the data in that node. If target is not in the list, null is returned. 9.70/3.43 */ 9.70/3.43 public T findData(T target) 9.70/3.43 { 9.70/3.43 return find(target).data; 9.70/3.43 } 9.70/3.43 9.70/3.43 public void outputList( ) 9.70/3.43 { 9.70/3.43 Node position = head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 //System.out.println(position.data); 9.70/3.43 position = position.link; 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 public boolean isEmpty( ) 9.70/3.43 { 9.70/3.43 return (head == null); 9.70/3.43 } 9.70/3.43 9.70/3.43 public void clear( ) 9.70/3.43 { 9.70/3.43 head = null; 9.70/3.43 } 9.70/3.43 9.70/3.43 /* 9.70/3.43 For two lists to be equal they must contain the same data items in 9.70/3.43 the same order. The equals method of T is used to compare data items. 9.70/3.43 */ 9.70/3.43 public boolean equals(Object otherObject) 9.70/3.43 { 9.70/3.43 if (!(otherObject instanceof LinkedList)) 9.70/3.43 return false; 9.70/3.43 else 9.70/3.43 { 9.70/3.43 LinkedList otherList = (LinkedList)otherObject; 9.70/3.43 if (size( ) != otherList.size( )) 9.70/3.43 return false; 9.70/3.43 Node position = head; 9.70/3.43 Node otherPosition = otherList.head; 9.70/3.43 while (position != null) 9.70/3.43 { 9.70/3.43 if (!(position.data.equals(otherPosition.data))) 9.70/3.43 return false; 9.70/3.43 position = position.link; 9.70/3.43 otherPosition = otherPosition.link; 9.70/3.43 } 9.70/3.43 return true; //no mismatch was not found 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 public static void main(String[] args) 9.70/3.43 { 9.70/3.43 LinkedList list = new LinkedList( ); 9.70/3.43 9.70/3.43 for (int i = 1; i < args.length; i++) { 9.70/3.43 Entry entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 entry = new Entry(args[i], i++); 9.70/3.43 list.addToStart(entry); 9.70/3.43 } 9.70/3.43 9.70/3.43 list.size(); // remove it! 9.70/3.43 //System.out.println("List has " + list.size( ) 9.70/3.43 // + " nodes."); 9.70/3.43 list.outputList( ); 9.70/3.43 //System.out.println("End of list."); 9.70/3.43 } 9.70/3.43 } 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (3) JBCToGraph (EQUIVALENT) 9.70/3.43 Constructed TerminationGraph. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (4) 9.70/3.43 Obligation: 9.70/3.43 Termination Graph based on JBC Program: 9.70/3.43 LinkedList.main([Ljava/lang/String;)V: Graph of 278 nodes with 3 SCCs. 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (5) TerminationGraphToSCCProof (SOUND) 9.70/3.43 Splitted TerminationGraph to 3 SCCss. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (6) 9.70/3.43 Complex Obligation (AND) 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (7) 9.70/3.43 Obligation: 9.70/3.43 SCC of termination graph based on JBC Program. 9.70/3.43 SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V 9.70/3.43 SCC calls the following helper methods: 9.70/3.43 Performed SCC analyses: 9.70/3.43 *Used field analysis yielded the following read fields: 9.70/3.43 *LinkedList$Node: [link] 9.70/3.43 *Marker field analysis yielded the following relations that could be markers: 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (8) SCCToQDPProof (SOUND) 9.70/3.43 Transformed TerminationGraph SCC to QDP. Log: 9.70/3.43 Generated 12 rules for P and 0 rules for R.P rules: 9.70/3.43 f2100_0_outputList_NULL(EOS(STATIC_2100), java.lang.Object(o867sub), java.lang.Object(o867sub)) -> f2104_0_outputList_NULL(EOS(STATIC_2104), java.lang.Object(o867sub), java.lang.Object(o867sub)) :|: TRUE 9.70/3.43 f2104_0_outputList_NULL(EOS(STATIC_2104), java.lang.Object(o867sub), java.lang.Object(o867sub)) -> f2107_0_outputList_Load(EOS(STATIC_2107), java.lang.Object(o867sub)) :|: TRUE 9.70/3.43 f2107_0_outputList_Load(EOS(STATIC_2107), java.lang.Object(o867sub)) -> f2111_0_outputList_InvokeMethod(EOS(STATIC_2111), java.lang.Object(o867sub)) :|: TRUE 9.70/3.43 f2111_0_outputList_InvokeMethod(EOS(STATIC_2111), java.lang.Object(o867sub)) -> f2115_0_access$000_Load(EOS(STATIC_2115), java.lang.Object(o867sub)) :|: TRUE 9.70/3.43 f2115_0_access$000_Load(EOS(STATIC_2115), java.lang.Object(o867sub)) -> f2120_0_access$000_FieldAccess(EOS(STATIC_2120), java.lang.Object(o867sub)) :|: TRUE 9.70/3.43 f2120_0_access$000_FieldAccess(EOS(STATIC_2120), java.lang.Object(LinkedList$Node(EOC, o880))) -> f2123_0_access$000_FieldAccess(EOS(STATIC_2123), java.lang.Object(LinkedList$Node(EOC, o880))) :|: TRUE 9.70/3.43 f2123_0_access$000_FieldAccess(EOS(STATIC_2123), java.lang.Object(LinkedList$Node(EOC, o880))) -> f2126_0_access$000_Return(EOS(STATIC_2126), o880) :|: TRUE 9.70/3.43 f2126_0_access$000_Return(EOS(STATIC_2126), o880) -> f2129_0_outputList_Store(EOS(STATIC_2129), o880) :|: TRUE 9.70/3.43 f2129_0_outputList_Store(EOS(STATIC_2129), o880) -> f2131_0_outputList_JMP(EOS(STATIC_2131), o880) :|: TRUE 9.70/3.43 f2131_0_outputList_JMP(EOS(STATIC_2131), o880) -> f2134_0_outputList_Load(EOS(STATIC_2134), o880) :|: TRUE 9.70/3.43 f2134_0_outputList_Load(EOS(STATIC_2134), o880) -> f2096_0_outputList_Load(EOS(STATIC_2096), o880) :|: TRUE 9.70/3.43 f2096_0_outputList_Load(EOS(STATIC_2096), o840) -> f2100_0_outputList_NULL(EOS(STATIC_2100), o840, o840) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 9.70/3.43 f2100_0_outputList_NULL(EOS(STATIC_2100), java.lang.Object(LinkedList$Node(EOC, o880:0)), java.lang.Object(LinkedList$Node(EOC, o880:0))) -> f2100_0_outputList_NULL(EOS(STATIC_2100), o880:0, o880:0) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 Filtered ground terms: 9.70/3.43 f2100_0_outputList_NULL(x1, x2, x3) -> f2100_0_outputList_NULL(x2, x3) 9.70/3.43 EOS(x1) -> EOS 9.70/3.43 LinkedList$Node(x1, x2) -> LinkedList$Node(x2) 9.70/3.43 Filtered duplicate args: 9.70/3.43 f2100_0_outputList_NULL(x1, x2) -> f2100_0_outputList_NULL(x2) 9.70/3.43 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 9.70/3.43 F2100_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o880:0:0))) -> F2100_0_OUTPUTLIST_NULL(o880:0:0) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (9) 9.70/3.43 Obligation: 9.70/3.43 Q DP problem: 9.70/3.43 The TRS P consists of the following rules: 9.70/3.43 9.70/3.43 F2100_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o880:0:0))) -> F2100_0_OUTPUTLIST_NULL(o880:0:0) 9.70/3.43 9.70/3.43 R is empty. 9.70/3.43 Q is empty. 9.70/3.43 We have to consider all minimal (P,Q,R)-chains. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (10) QDPSizeChangeProof (EQUIVALENT) 9.70/3.43 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. 9.70/3.43 9.70/3.43 From the DPs we obtained the following set of size-change graphs: 9.70/3.43 *F2100_0_OUTPUTLIST_NULL(java.lang.Object(LinkedList$Node(o880:0:0))) -> F2100_0_OUTPUTLIST_NULL(o880:0:0) 9.70/3.43 The graph contains the following edges 1 > 1 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (11) 9.70/3.43 YES 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (12) 9.70/3.43 Obligation: 9.70/3.43 SCC of termination graph based on JBC Program. 9.70/3.43 SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V 9.70/3.43 SCC calls the following helper methods: 9.70/3.43 Performed SCC analyses: 9.70/3.43 *Used field analysis yielded the following read fields: 9.70/3.43 *LinkedList$Node: [link] 9.70/3.43 *Marker field analysis yielded the following relations that could be markers: 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (13) SCCToQDPProof (SOUND) 9.70/3.43 Transformed TerminationGraph SCC to QDP. Log: 9.70/3.43 Generated 14 rules for P and 0 rules for R.P rules: 9.70/3.43 f2060_0_size_NULL(EOS(STATIC_2060), java.lang.Object(o844sub), java.lang.Object(o844sub)) -> f2062_0_size_NULL(EOS(STATIC_2062), java.lang.Object(o844sub), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2062_0_size_NULL(EOS(STATIC_2062), java.lang.Object(o844sub), java.lang.Object(o844sub)) -> f2065_0_size_Inc(EOS(STATIC_2065), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2065_0_size_Inc(EOS(STATIC_2065), java.lang.Object(o844sub)) -> f2069_0_size_Load(EOS(STATIC_2069), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2069_0_size_Load(EOS(STATIC_2069), java.lang.Object(o844sub)) -> f2073_0_size_InvokeMethod(EOS(STATIC_2073), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2073_0_size_InvokeMethod(EOS(STATIC_2073), java.lang.Object(o844sub)) -> f2076_0_access$000_Load(EOS(STATIC_2076), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2076_0_access$000_Load(EOS(STATIC_2076), java.lang.Object(o844sub)) -> f2083_0_access$000_FieldAccess(EOS(STATIC_2083), java.lang.Object(o844sub)) :|: TRUE 9.70/3.43 f2083_0_access$000_FieldAccess(EOS(STATIC_2083), java.lang.Object(o848sub)) -> f2085_0_access$000_FieldAccess(EOS(STATIC_2085), java.lang.Object(o848sub)) :|: TRUE 9.70/3.43 f2085_0_access$000_FieldAccess(EOS(STATIC_2085), java.lang.Object(LinkedList$Node(EOC, o854))) -> f2088_0_access$000_FieldAccess(EOS(STATIC_2088), java.lang.Object(LinkedList$Node(EOC, o854))) :|: TRUE 9.70/3.43 f2088_0_access$000_FieldAccess(EOS(STATIC_2088), java.lang.Object(LinkedList$Node(EOC, o854))) -> f2092_0_access$000_Return(EOS(STATIC_2092), o854) :|: TRUE 9.70/3.43 f2092_0_access$000_Return(EOS(STATIC_2092), o854) -> f2095_0_size_Store(EOS(STATIC_2095), o854) :|: TRUE 9.70/3.43 f2095_0_size_Store(EOS(STATIC_2095), o854) -> f2099_0_size_JMP(EOS(STATIC_2099), o854) :|: TRUE 9.70/3.43 f2099_0_size_JMP(EOS(STATIC_2099), o854) -> f2103_0_size_Load(EOS(STATIC_2103), o854) :|: TRUE 9.70/3.43 f2103_0_size_Load(EOS(STATIC_2103), o854) -> f2058_0_size_Load(EOS(STATIC_2058), o854) :|: TRUE 9.70/3.43 f2058_0_size_Load(EOS(STATIC_2058), o838) -> f2060_0_size_NULL(EOS(STATIC_2060), o838, o838) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 9.70/3.43 f2060_0_size_NULL(EOS(STATIC_2060), java.lang.Object(LinkedList$Node(EOC, o854:0)), java.lang.Object(LinkedList$Node(EOC, o854:0))) -> f2060_0_size_NULL(EOS(STATIC_2060), o854:0, o854:0) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 Filtered ground terms: 9.70/3.43 f2060_0_size_NULL(x1, x2, x3) -> f2060_0_size_NULL(x2, x3) 9.70/3.43 EOS(x1) -> EOS 9.70/3.43 LinkedList$Node(x1, x2) -> LinkedList$Node(x2) 9.70/3.43 Filtered duplicate args: 9.70/3.43 f2060_0_size_NULL(x1, x2) -> f2060_0_size_NULL(x2) 9.70/3.43 Combined rules. Obtained 1 conditional rules for P and 0 conditional rules for R.P rules: 9.70/3.43 F2060_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o854:0:0))) -> F2060_0_SIZE_NULL(o854:0:0) :|: TRUE 9.70/3.43 R rules: 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (14) 9.70/3.43 Obligation: 9.70/3.43 Q DP problem: 9.70/3.43 The TRS P consists of the following rules: 9.70/3.43 9.70/3.43 F2060_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o854:0:0))) -> F2060_0_SIZE_NULL(o854:0:0) 9.70/3.43 9.70/3.43 R is empty. 9.70/3.43 Q is empty. 9.70/3.43 We have to consider all minimal (P,Q,R)-chains. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (15) QDPSizeChangeProof (EQUIVALENT) 9.70/3.43 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. 9.70/3.43 9.70/3.43 From the DPs we obtained the following set of size-change graphs: 9.70/3.43 *F2060_0_SIZE_NULL(java.lang.Object(LinkedList$Node(o854:0:0))) -> F2060_0_SIZE_NULL(o854:0:0) 9.70/3.43 The graph contains the following edges 1 > 1 9.70/3.43 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (16) 9.70/3.43 YES 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (17) 9.70/3.43 Obligation: 9.70/3.43 SCC of termination graph based on JBC Program. 9.70/3.43 SCC contains nodes from the following methods: LinkedList.main([Ljava/lang/String;)V 9.70/3.43 SCC calls the following helper methods: 9.70/3.43 Performed SCC analyses: 9.70/3.43 *Used field analysis yielded the following read fields: 9.70/3.43 *LinkedList: [head] 9.70/3.43 *Marker field analysis yielded the following relations that could be markers: 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (18) SCCToIRSProof (SOUND) 9.70/3.43 Transformed FIGraph SCCs to intTRSs. Log: 9.70/3.43 Generated rules. Obtained 141 IRulesP rules: 9.70/3.43 f1883_0_main_Load(EOS(STATIC_1883), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56) -> f1884_0_main_ArrayLength(EOS(STATIC_1884), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56, java.lang.Object(o795sub)) :|: TRUE 9.70/3.43 f1884_0_main_ArrayLength(EOS(STATIC_1884), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) -> f1885_0_main_ArrayLength(EOS(STATIC_1885), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) :|: i58 >= 0 9.70/3.43 f1885_0_main_ArrayLength(EOS(STATIC_1885), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, java.lang.Object(ARRAY(i58))) -> f1886_0_main_GE(EOS(STATIC_1886), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) :|: i58 >= 0 9.70/3.43 f1886_0_main_GE(EOS(STATIC_1886), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) -> f1888_0_main_GE(EOS(STATIC_1888), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) :|: i56 < i58 9.70/3.43 f1888_0_main_GE(EOS(STATIC_1888), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56, i58) -> f1890_0_main_New(EOS(STATIC_1890), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: i56 < i58 9.70/3.43 f1890_0_main_New(EOS(STATIC_1890), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1892_0_main_Duplicate(EOS(STATIC_1892), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: TRUE 9.70/3.43 f1892_0_main_Duplicate(EOS(STATIC_1892), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1894_0_main_Load(EOS(STATIC_1894), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: TRUE 9.70/3.43 f1894_0_main_Load(EOS(STATIC_1894), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1895_0_main_Load(EOS(STATIC_1895), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58))) :|: TRUE 9.70/3.43 f1895_0_main_Load(EOS(STATIC_1895), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58))) -> f1897_0_main_ArrayAccess(EOS(STATIC_1897), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) :|: TRUE 9.70/3.43 f1897_0_main_ArrayAccess(EOS(STATIC_1897), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) -> f1899_0_main_ArrayAccess(EOS(STATIC_1899), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) :|: TRUE 9.70/3.43 f1899_0_main_ArrayAccess(EOS(STATIC_1899), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, java.lang.Object(ARRAY(i58)), i56) -> f1902_0_main_Load(EOS(STATIC_1902), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) :|: i56 < i58 9.70/3.43 f1902_0_main_Load(EOS(STATIC_1902), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56) -> f1905_0_main_Inc(EOS(STATIC_1905), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56) :|: TRUE 9.70/3.43 f1905_0_main_Inc(EOS(STATIC_1905), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56, i56) -> f1907_0_main_InvokeMethod(EOS(STATIC_1907), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i56 + 1, i56) :|: TRUE 9.70/3.43 f1907_0_main_InvokeMethod(EOS(STATIC_1907), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1910_0__init__Load(EOS(STATIC_1910), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1910_0__init__Load(EOS(STATIC_1910), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1916_0__init__InvokeMethod(EOS(STATIC_1916), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1916_0__init__InvokeMethod(EOS(STATIC_1916), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1920_0__init__Load(EOS(STATIC_1920), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1920_0__init__Load(EOS(STATIC_1920), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1924_0__init__Load(EOS(STATIC_1924), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1924_0__init__Load(EOS(STATIC_1924), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1927_0__init__FieldAccess(EOS(STATIC_1927), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1927_0__init__FieldAccess(EOS(STATIC_1927), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1930_0__init__Load(EOS(STATIC_1930), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1930_0__init__Load(EOS(STATIC_1930), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1934_0__init__Load(EOS(STATIC_1934), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1934_0__init__Load(EOS(STATIC_1934), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1936_0__init__FieldAccess(EOS(STATIC_1936), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) :|: TRUE 9.70/3.43 f1936_0__init__FieldAccess(EOS(STATIC_1936), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i56) -> f1940_0__init__Return(EOS(STATIC_1940), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1940_0__init__Return(EOS(STATIC_1940), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1944_0_main_Store(EOS(STATIC_1944), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1944_0_main_Store(EOS(STATIC_1944), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1947_0_main_Load(EOS(STATIC_1947), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1947_0_main_Load(EOS(STATIC_1947), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1954_0_main_Load(EOS(STATIC_1954), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1954_0_main_Load(EOS(STATIC_1954), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1960_0_main_InvokeMethod(EOS(STATIC_1960), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1960_0_main_InvokeMethod(EOS(STATIC_1960), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1967_0_addToStart_Load(EOS(STATIC_1967), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1967_0_addToStart_Load(EOS(STATIC_1967), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1975_0_addToStart_New(EOS(STATIC_1975), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1975_0_addToStart_New(EOS(STATIC_1975), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1979_0_addToStart_Duplicate(EOS(STATIC_1979), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1979_0_addToStart_Duplicate(EOS(STATIC_1979), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1983_0_addToStart_Load(EOS(STATIC_1983), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1983_0_addToStart_Load(EOS(STATIC_1983), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1986_0_addToStart_Load(EOS(STATIC_1986), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1986_0_addToStart_Load(EOS(STATIC_1986), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1990_0_addToStart_Load(EOS(STATIC_1990), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1990_0_addToStart_Load(EOS(STATIC_1990), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1993_0_addToStart_FieldAccess(EOS(STATIC_1993), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1993_0_addToStart_FieldAccess(EOS(STATIC_1993), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f1997_0_addToStart_InvokeMethod(EOS(STATIC_1997), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f1997_0_addToStart_InvokeMethod(EOS(STATIC_1997), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2010_0__init__Load(EOS(STATIC_2010), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2010_0__init__Load(EOS(STATIC_2010), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2017_0__init__Load(EOS(STATIC_2017), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2017_0__init__Load(EOS(STATIC_2017), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2020_0__init__FieldAccess(EOS(STATIC_2020), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2020_0__init__FieldAccess(EOS(STATIC_2020), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2022_0__init__Load(EOS(STATIC_2022), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2022_0__init__Load(EOS(STATIC_2022), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2025_0__init__InvokeMethod(EOS(STATIC_2025), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2025_0__init__InvokeMethod(EOS(STATIC_2025), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2028_0__init__Load(EOS(STATIC_2028), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2028_0__init__Load(EOS(STATIC_2028), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2031_0__init__Load(EOS(STATIC_2031), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2031_0__init__Load(EOS(STATIC_2031), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2034_0__init__FieldAccess(EOS(STATIC_2034), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2034_0__init__FieldAccess(EOS(STATIC_2034), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2037_0__init__Load(EOS(STATIC_2037), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2037_0__init__Load(EOS(STATIC_2037), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2039_0__init__Load(EOS(STATIC_2039), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2039_0__init__Load(EOS(STATIC_2039), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2042_0__init__FieldAccess(EOS(STATIC_2042), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2042_0__init__FieldAccess(EOS(STATIC_2042), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2044_0__init__Return(EOS(STATIC_2044), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2044_0__init__Return(EOS(STATIC_2044), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2047_0_addToStart_FieldAccess(EOS(STATIC_2047), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2047_0_addToStart_FieldAccess(EOS(STATIC_2047), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2050_0_addToStart_Return(EOS(STATIC_2050), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2050_0_addToStart_Return(EOS(STATIC_2050), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2053_0_main_New(EOS(STATIC_2053), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2053_0_main_New(EOS(STATIC_2053), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2056_0_main_Duplicate(EOS(STATIC_2056), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2056_0_main_Duplicate(EOS(STATIC_2056), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2059_0_main_Load(EOS(STATIC_2059), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2059_0_main_Load(EOS(STATIC_2059), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2061_0_main_Load(EOS(STATIC_2061), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58))) :|: TRUE 9.70/3.43 f2061_0_main_Load(EOS(STATIC_2061), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58))) -> f2064_0_main_ArrayAccess(EOS(STATIC_2064), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2064_0_main_ArrayAccess(EOS(STATIC_2064), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) -> f2067_0_main_ArrayAccess(EOS(STATIC_2067), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) :|: TRUE 9.70/3.43 f2067_0_main_ArrayAccess(EOS(STATIC_2067), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, java.lang.Object(ARRAY(i58)), i59) -> f2071_0_main_Load(EOS(STATIC_2071), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) :|: i59 < i58 9.70/3.43 f2071_0_main_Load(EOS(STATIC_2071), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59) -> f2075_0_main_Inc(EOS(STATIC_2075), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i59) :|: TRUE 9.70/3.43 f2075_0_main_Inc(EOS(STATIC_2075), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59, i59) -> f2078_0_main_InvokeMethod(EOS(STATIC_2078), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i59 + 1, i59) :|: TRUE 9.70/3.43 f2078_0_main_InvokeMethod(EOS(STATIC_2078), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2081_0__init__Load(EOS(STATIC_2081), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2081_0__init__Load(EOS(STATIC_2081), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2086_0__init__InvokeMethod(EOS(STATIC_2086), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2086_0__init__InvokeMethod(EOS(STATIC_2086), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2090_0__init__Load(EOS(STATIC_2090), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2090_0__init__Load(EOS(STATIC_2090), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2094_0__init__Load(EOS(STATIC_2094), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2094_0__init__Load(EOS(STATIC_2094), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2097_0__init__FieldAccess(EOS(STATIC_2097), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2097_0__init__FieldAccess(EOS(STATIC_2097), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2101_0__init__Load(EOS(STATIC_2101), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2101_0__init__Load(EOS(STATIC_2101), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2106_0__init__Load(EOS(STATIC_2106), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2106_0__init__Load(EOS(STATIC_2106), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2109_0__init__FieldAccess(EOS(STATIC_2109), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) :|: TRUE 9.70/3.43 f2109_0__init__FieldAccess(EOS(STATIC_2109), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i59) -> f2113_0__init__Return(EOS(STATIC_2113), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2113_0__init__Return(EOS(STATIC_2113), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2117_0_main_Store(EOS(STATIC_2117), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2117_0_main_Store(EOS(STATIC_2117), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2118_0_main_Load(EOS(STATIC_2118), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2118_0_main_Load(EOS(STATIC_2118), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2121_0_main_Load(EOS(STATIC_2121), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2121_0_main_Load(EOS(STATIC_2121), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2124_0_main_InvokeMethod(EOS(STATIC_2124), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2124_0_main_InvokeMethod(EOS(STATIC_2124), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2127_0_addToStart_Load(EOS(STATIC_2127), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2127_0_addToStart_Load(EOS(STATIC_2127), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2132_0_addToStart_New(EOS(STATIC_2132), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2132_0_addToStart_New(EOS(STATIC_2132), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2135_0_addToStart_Duplicate(EOS(STATIC_2135), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2135_0_addToStart_Duplicate(EOS(STATIC_2135), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2137_0_addToStart_Load(EOS(STATIC_2137), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2137_0_addToStart_Load(EOS(STATIC_2137), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2139_0_addToStart_Load(EOS(STATIC_2139), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2139_0_addToStart_Load(EOS(STATIC_2139), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2141_0_addToStart_Load(EOS(STATIC_2141), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2141_0_addToStart_Load(EOS(STATIC_2141), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2143_0_addToStart_FieldAccess(EOS(STATIC_2143), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2143_0_addToStart_FieldAccess(EOS(STATIC_2143), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2145_0_addToStart_InvokeMethod(EOS(STATIC_2145), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2145_0_addToStart_InvokeMethod(EOS(STATIC_2145), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2147_0__init__Load(EOS(STATIC_2147), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2147_0__init__Load(EOS(STATIC_2147), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2153_0__init__Load(EOS(STATIC_2153), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2153_0__init__Load(EOS(STATIC_2153), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2157_0__init__FieldAccess(EOS(STATIC_2157), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2157_0__init__FieldAccess(EOS(STATIC_2157), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2164_0__init__Load(EOS(STATIC_2164), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2164_0__init__Load(EOS(STATIC_2164), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2165_0__init__InvokeMethod(EOS(STATIC_2165), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2165_0__init__InvokeMethod(EOS(STATIC_2165), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2168_0__init__Load(EOS(STATIC_2168), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2168_0__init__Load(EOS(STATIC_2168), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2170_0__init__Load(EOS(STATIC_2170), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2170_0__init__Load(EOS(STATIC_2170), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2172_0__init__FieldAccess(EOS(STATIC_2172), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2172_0__init__FieldAccess(EOS(STATIC_2172), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2175_0__init__Load(EOS(STATIC_2175), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2175_0__init__Load(EOS(STATIC_2175), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2177_0__init__Load(EOS(STATIC_2177), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2177_0__init__Load(EOS(STATIC_2177), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2179_0__init__FieldAccess(EOS(STATIC_2179), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2179_0__init__FieldAccess(EOS(STATIC_2179), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2184_0__init__Return(EOS(STATIC_2184), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2184_0__init__Return(EOS(STATIC_2184), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2186_0_addToStart_FieldAccess(EOS(STATIC_2186), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2186_0_addToStart_FieldAccess(EOS(STATIC_2186), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2198_0_addToStart_Return(EOS(STATIC_2198), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2198_0_addToStart_Return(EOS(STATIC_2198), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2200_0_main_New(EOS(STATIC_2200), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2200_0_main_New(EOS(STATIC_2200), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2202_0_main_Duplicate(EOS(STATIC_2202), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2202_0_main_Duplicate(EOS(STATIC_2202), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2203_0_main_Load(EOS(STATIC_2203), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2203_0_main_Load(EOS(STATIC_2203), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2204_0_main_Load(EOS(STATIC_2204), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58))) :|: TRUE 9.70/3.43 f2204_0_main_Load(EOS(STATIC_2204), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58))) -> f2205_0_main_ArrayAccess(EOS(STATIC_2205), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2205_0_main_ArrayAccess(EOS(STATIC_2205), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58)), i69) -> f2206_0_main_ArrayAccess(EOS(STATIC_2206), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58)), i69) :|: TRUE 9.70/3.43 f2206_0_main_ArrayAccess(EOS(STATIC_2206), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, java.lang.Object(ARRAY(i58)), i69) -> f2208_0_main_Load(EOS(STATIC_2208), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) :|: i69 < i58 9.70/3.43 f2208_0_main_Load(EOS(STATIC_2208), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69) -> f2210_0_main_Inc(EOS(STATIC_2210), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i69) :|: TRUE 9.70/3.43 f2210_0_main_Inc(EOS(STATIC_2210), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69, i69) -> f2211_0_main_InvokeMethod(EOS(STATIC_2211), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i69 + 1, i69) :|: TRUE 9.70/3.43 f2211_0_main_InvokeMethod(EOS(STATIC_2211), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2216_0__init__Load(EOS(STATIC_2216), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2216_0__init__Load(EOS(STATIC_2216), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2222_0__init__InvokeMethod(EOS(STATIC_2222), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2222_0__init__InvokeMethod(EOS(STATIC_2222), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2227_0__init__Load(EOS(STATIC_2227), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2227_0__init__Load(EOS(STATIC_2227), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2232_0__init__Load(EOS(STATIC_2232), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2232_0__init__Load(EOS(STATIC_2232), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2235_0__init__FieldAccess(EOS(STATIC_2235), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2235_0__init__FieldAccess(EOS(STATIC_2235), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2245_0__init__Load(EOS(STATIC_2245), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2245_0__init__Load(EOS(STATIC_2245), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2247_0__init__Load(EOS(STATIC_2247), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2247_0__init__Load(EOS(STATIC_2247), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2248_0__init__FieldAccess(EOS(STATIC_2248), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) :|: TRUE 9.70/3.43 f2248_0__init__FieldAccess(EOS(STATIC_2248), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72, i69) -> f2254_0__init__Return(EOS(STATIC_2254), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2254_0__init__Return(EOS(STATIC_2254), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2257_0_main_Store(EOS(STATIC_2257), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2257_0_main_Store(EOS(STATIC_2257), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2259_0_main_Load(EOS(STATIC_2259), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2259_0_main_Load(EOS(STATIC_2259), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2263_0_main_Load(EOS(STATIC_2263), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2263_0_main_Load(EOS(STATIC_2263), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2268_0_main_InvokeMethod(EOS(STATIC_2268), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2268_0_main_InvokeMethod(EOS(STATIC_2268), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2273_0_addToStart_Load(EOS(STATIC_2273), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2273_0_addToStart_Load(EOS(STATIC_2273), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2285_0_addToStart_New(EOS(STATIC_2285), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2285_0_addToStart_New(EOS(STATIC_2285), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2290_0_addToStart_Duplicate(EOS(STATIC_2290), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2290_0_addToStart_Duplicate(EOS(STATIC_2290), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2297_0_addToStart_Load(EOS(STATIC_2297), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2297_0_addToStart_Load(EOS(STATIC_2297), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2299_0_addToStart_Load(EOS(STATIC_2299), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2299_0_addToStart_Load(EOS(STATIC_2299), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2301_0_addToStart_Load(EOS(STATIC_2301), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2301_0_addToStart_Load(EOS(STATIC_2301), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2303_0_addToStart_FieldAccess(EOS(STATIC_2303), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2303_0_addToStart_FieldAccess(EOS(STATIC_2303), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2305_0_addToStart_InvokeMethod(EOS(STATIC_2305), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2305_0_addToStart_InvokeMethod(EOS(STATIC_2305), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2307_0__init__Load(EOS(STATIC_2307), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2307_0__init__Load(EOS(STATIC_2307), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2310_0__init__Load(EOS(STATIC_2310), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2310_0__init__Load(EOS(STATIC_2310), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2311_0__init__FieldAccess(EOS(STATIC_2311), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2311_0__init__FieldAccess(EOS(STATIC_2311), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2312_0__init__Load(EOS(STATIC_2312), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2312_0__init__Load(EOS(STATIC_2312), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2313_0__init__InvokeMethod(EOS(STATIC_2313), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2313_0__init__InvokeMethod(EOS(STATIC_2313), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2314_0__init__Load(EOS(STATIC_2314), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2314_0__init__Load(EOS(STATIC_2314), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2315_0__init__Load(EOS(STATIC_2315), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2315_0__init__Load(EOS(STATIC_2315), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2316_0__init__FieldAccess(EOS(STATIC_2316), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2316_0__init__FieldAccess(EOS(STATIC_2316), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2317_0__init__Load(EOS(STATIC_2317), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2317_0__init__Load(EOS(STATIC_2317), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2318_0__init__Load(EOS(STATIC_2318), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2318_0__init__Load(EOS(STATIC_2318), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2319_0__init__FieldAccess(EOS(STATIC_2319), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2319_0__init__FieldAccess(EOS(STATIC_2319), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2320_0__init__Return(EOS(STATIC_2320), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2320_0__init__Return(EOS(STATIC_2320), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2321_0_addToStart_FieldAccess(EOS(STATIC_2321), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2321_0_addToStart_FieldAccess(EOS(STATIC_2321), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2322_0_addToStart_Return(EOS(STATIC_2322), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2322_0_addToStart_Return(EOS(STATIC_2322), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2323_0_main_Inc(EOS(STATIC_2323), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) :|: TRUE 9.70/3.43 f2323_0_main_Inc(EOS(STATIC_2323), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72) -> f2324_0_main_JMP(EOS(STATIC_2324), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i72 + 1) :|: TRUE 9.70/3.43 f2324_0_main_JMP(EOS(STATIC_2324), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i73) -> f2325_0_main_Load(EOS(STATIC_2325), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i73) :|: TRUE 9.70/3.43 f2325_0_main_Load(EOS(STATIC_2325), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i73) -> f1882_0_main_Load(EOS(STATIC_1882), java.lang.Object(ARRAY(i58)), java.lang.Object(ARRAY(i58)), i73) :|: TRUE 9.70/3.43 f1882_0_main_Load(EOS(STATIC_1882), java.lang.Object(o795sub), java.lang.Object(o795sub), i56) -> f1883_0_main_Load(EOS(STATIC_1883), java.lang.Object(o795sub), java.lang.Object(o795sub), i56, i56) :|: TRUE 9.70/3.43 Combined rules. Obtained 1 IRulesP rules: 9.70/3.43 f1883_0_main_Load(EOS(STATIC_1883), java.lang.Object(ARRAY(i58:0)), java.lang.Object(ARRAY(i58:0)), i56:0, i56:0) -> f1883_0_main_Load(EOS(STATIC_1883), 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 9.70/3.43 Filtered constant ground arguments: 9.70/3.43 f1883_0_main_Load(x1, x2, x3, x4, x5) -> f1883_0_main_Load(x2, x3, x4, x5) 9.70/3.43 EOS(x1) -> EOS 9.70/3.43 Filtered duplicate arguments: 9.70/3.43 f1883_0_main_Load(x1, x2, x3, x4) -> f1883_0_main_Load(x2, x4) 9.70/3.43 Finished conversion. Obtained 1 rules.P rules: 9.70/3.43 f1883_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1883_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 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (19) 9.70/3.43 Obligation: 9.70/3.43 Rules: 9.70/3.43 f1883_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1883_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 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (20) IRSFormatTransformerProof (EQUIVALENT) 9.70/3.43 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (21) 9.70/3.43 Obligation: 9.70/3.43 Rules: 9.70/3.43 f1883_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1883_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 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (22) IRSwTTerminationDigraphProof (EQUIVALENT) 9.70/3.43 Constructed termination digraph! 9.70/3.43 Nodes: 9.70/3.43 (1) f1883_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1883_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 9.70/3.43 9.70/3.43 Arcs: 9.70/3.43 (1) -> (1) 9.70/3.43 9.70/3.43 This digraph is fully evaluated! 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (23) 9.70/3.43 Obligation: 9.70/3.43 9.70/3.43 Termination digraph: 9.70/3.43 Nodes: 9.70/3.43 (1) f1883_0_main_Load(java.lang.Object(ARRAY(i58:0)), i56:0, i58:0) -> f1883_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 9.70/3.43 9.70/3.43 Arcs: 9.70/3.43 (1) -> (1) 9.70/3.43 9.70/3.43 This digraph is fully evaluated! 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (24) IntTRSCompressionProof (EQUIVALENT) 9.70/3.43 Compressed rules. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (25) 9.70/3.43 Obligation: 9.70/3.43 Rules: 9.70/3.43 f1883_0_main_Load(java.lang.Object(ARRAY(i58:0:0)), i56:0:0, i58:0:0) -> f1883_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 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (26) TempFilterProof (SOUND) 9.70/3.43 Used the following sort dictionary for filtering: 9.70/3.43 f1883_0_main_Load(VARIABLE, INTEGER, INTEGER) 9.70/3.43 java.lang.Object(VARIABLE) 9.70/3.43 ARRAY(INTEGER) 9.70/3.43 Replaced non-predefined constructor symbols by 0. 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (27) 9.70/3.43 Obligation: 9.70/3.43 Rules: 9.70/3.43 f1883_0_main_Load(c, i56:0:0, i58:0:0) -> f1883_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) 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (28) PolynomialOrderProcessor (EQUIVALENT) 9.70/3.43 Found the following polynomial interpretation: 9.70/3.43 [f1883_0_main_Load(x, x1, x2)] = c*x - x1 + x2 9.70/3.43 9.70/3.43 The following rules are decreasing: 9.70/3.43 f1883_0_main_Load(c, i56:0:0, i58:0:0) -> f1883_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) 9.70/3.43 The following rules are bounded: 9.70/3.43 f1883_0_main_Load(c, i56:0:0, i58:0:0) -> f1883_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) 9.70/3.43 9.70/3.43 ---------------------------------------- 9.70/3.43 9.70/3.43 (29) 9.70/3.43 YES 9.70/3.47 EOF