10.46/3.72 YES 10.46/3.74 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar 10.46/3.74 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.46/3.74 10.46/3.74 10.46/3.74 termination of the given Bare JBC problem could be proven: 10.46/3.74 10.46/3.74 (0) Bare JBC problem 10.46/3.74 (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] 10.46/3.74 (2) JBC problem 10.46/3.74 (3) JBCToGraph [EQUIVALENT, 464 ms] 10.46/3.74 (4) JBCTerminationGraph 10.46/3.74 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 10.46/3.74 (6) AND 10.46/3.74 (7) JBCTerminationSCC 10.46/3.74 (8) SCCToIRSProof [SOUND, 111 ms] 10.46/3.74 (9) IRSwT 10.46/3.74 (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 10.46/3.74 (11) IRSwT 10.46/3.74 (12) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 10.46/3.74 (13) IRSwT 10.46/3.74 (14) TempFilterProof [SOUND, 22 ms] 10.46/3.74 (15) IRSwT 10.46/3.74 (16) IRSwTToQDPProof [SOUND, 0 ms] 10.46/3.74 (17) QDP 10.46/3.74 (18) QDPSizeChangeProof [EQUIVALENT, 0 ms] 10.46/3.74 (19) YES 10.46/3.74 (20) JBCTerminationSCC 10.46/3.74 (21) SCCToIRSProof [SOUND, 40 ms] 10.46/3.74 (22) IRSwT 10.46/3.74 (23) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 10.46/3.74 (24) IRSwT 10.46/3.74 (25) IRSwTTerminationDigraphProof [EQUIVALENT, 12 ms] 10.46/3.74 (26) IRSwT 10.46/3.74 (27) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.46/3.74 (28) IRSwT 10.46/3.74 (29) FilterProof [EQUIVALENT, 0 ms] 10.46/3.74 (30) IntTRS 10.46/3.74 (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.46/3.74 (32) IntTRS 10.46/3.74 (33) RankingReductionPairProof [EQUIVALENT, 5 ms] 10.46/3.74 (34) YES 10.46/3.74 (35) JBCTerminationSCC 10.46/3.74 (36) SCCToIRSProof [SOUND, 14 ms] 10.46/3.74 (37) IRSwT 10.46/3.74 (38) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 10.46/3.74 (39) IRSwT 10.46/3.74 (40) IRSwTTerminationDigraphProof [EQUIVALENT, 10 ms] 10.46/3.74 (41) IRSwT 10.46/3.74 (42) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.46/3.74 (43) IRSwT 10.46/3.74 (44) TempFilterProof [SOUND, 5 ms] 10.46/3.74 (45) IntTRS 10.46/3.74 (46) RankingReductionPairProof [EQUIVALENT, 0 ms] 10.46/3.74 (47) YES 10.46/3.74 (48) JBCTerminationSCC 10.46/3.74 (49) SCCToIRSProof [SOUND, 19 ms] 10.46/3.74 (50) IRSwT 10.46/3.74 (51) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 10.46/3.74 (52) IRSwT 10.46/3.74 (53) IRSwTTerminationDigraphProof [EQUIVALENT, 15 ms] 10.46/3.74 (54) IRSwT 10.46/3.74 (55) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.46/3.74 (56) IRSwT 10.46/3.74 (57) TempFilterProof [SOUND, 32 ms] 10.46/3.74 (58) IntTRS 10.46/3.74 (59) PolynomialOrderProcessor [EQUIVALENT, 10 ms] 10.46/3.74 (60) YES 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (0) 10.46/3.74 Obligation: 10.46/3.74 need to prove termination of the following program: 10.46/3.74 public class ListReversePanhandleList { 10.46/3.74 public static void main(String... args) { 10.46/3.74 List x = List.createPanhandleList(args[0].length(), args[1].length()); 10.46/3.74 List.reverse(x); 10.46/3.74 } 10.46/3.74 } 10.46/3.74 10.46/3.74 class List { 10.46/3.74 List n; 10.46/3.74 10.46/3.74 public List(List next) { 10.46/3.74 this.n = next; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static void reverse(List x) { 10.46/3.74 List y = null; 10.46/3.74 while (x != null) { 10.46/3.74 List z = x; 10.46/3.74 x = x.n; 10.46/3.74 z.n = y; 10.46/3.74 y = z; 10.46/3.74 } 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createList(int l, List end) { 10.46/3.74 while (--l > 0) { 10.46/3.74 end = new List(end); 10.46/3.74 } 10.46/3.74 return end; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createCycle(int l) { 10.46/3.74 List last = new List(null); 10.46/3.74 List first = createList(l - 1, last); 10.46/3.74 last.n = first; 10.46/3.74 return first; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createPanhandleList(int pl, int cl) { 10.46/3.74 return createList(pl, createCycle(cl)); 10.46/3.74 } 10.46/3.74 10.46/3.74 } 10.46/3.74 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (1) BareJBCToJBCProof (EQUIVALENT) 10.46/3.74 initialized classpath 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (2) 10.46/3.74 Obligation: 10.46/3.74 need to prove termination of the following program: 10.46/3.74 public class ListReversePanhandleList { 10.46/3.74 public static void main(String... args) { 10.46/3.74 List x = List.createPanhandleList(args[0].length(), args[1].length()); 10.46/3.74 List.reverse(x); 10.46/3.74 } 10.46/3.74 } 10.46/3.74 10.46/3.74 class List { 10.46/3.74 List n; 10.46/3.74 10.46/3.74 public List(List next) { 10.46/3.74 this.n = next; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static void reverse(List x) { 10.46/3.74 List y = null; 10.46/3.74 while (x != null) { 10.46/3.74 List z = x; 10.46/3.74 x = x.n; 10.46/3.74 z.n = y; 10.46/3.74 y = z; 10.46/3.74 } 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createList(int l, List end) { 10.46/3.74 while (--l > 0) { 10.46/3.74 end = new List(end); 10.46/3.74 } 10.46/3.74 return end; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createCycle(int l) { 10.46/3.74 List last = new List(null); 10.46/3.74 List first = createList(l - 1, last); 10.46/3.74 last.n = first; 10.46/3.74 return first; 10.46/3.74 } 10.46/3.74 10.46/3.74 public static List createPanhandleList(int pl, int cl) { 10.46/3.74 return createList(pl, createCycle(cl)); 10.46/3.74 } 10.46/3.74 10.46/3.74 } 10.46/3.74 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (3) JBCToGraph (EQUIVALENT) 10.46/3.74 Constructed TerminationGraph. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (4) 10.46/3.74 Obligation: 10.46/3.74 Termination Graph based on JBC Program: 10.46/3.74 ListReversePanhandleList.main([Ljava/lang/String;)V: Graph of 364 nodes with 4 SCCs. 10.46/3.74 10.46/3.74 10.46/3.74 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (5) TerminationGraphToSCCProof (SOUND) 10.46/3.74 Splitted TerminationGraph to 4 SCCss. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (6) 10.46/3.74 Complex Obligation (AND) 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (7) 10.46/3.74 Obligation: 10.46/3.74 SCC of termination graph based on JBC Program. 10.46/3.74 SCC contains nodes from the following methods: ListReversePanhandleList.main([Ljava/lang/String;)V 10.46/3.74 SCC calls the following helper methods: 10.46/3.74 Performed SCC analyses: 10.46/3.74 *Used field analysis yielded the following read fields: 10.46/3.74 *List: [n] 10.46/3.74 *Marker field analysis yielded the following relations that could be markers: 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (8) SCCToIRSProof (SOUND) 10.46/3.74 Transformed FIGraph SCCs to intTRSs. Log: 10.46/3.74 Generated rules. Obtained 16 IRulesP rules: 10.46/3.74 f1936_0_reverse_NULL(EOS(STATIC_1936), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(o1114sub)) -> f1961_0_reverse_Load(EOS(STATIC_1961), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129))) :|: TRUE 10.46/3.74 f1961_0_reverse_Load(EOS(STATIC_1961), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129))) -> f1990_0_reverse_Store(EOS(STATIC_1990), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(o1114sub)) :|: TRUE 10.46/3.74 f1990_0_reverse_Store(EOS(STATIC_1990), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) -> f2023_0_reverse_Store(EOS(STATIC_2023), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) :|: TRUE 10.46/3.74 f2023_0_reverse_Store(EOS(STATIC_2023), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) -> f2040_0_reverse_Load(EOS(STATIC_2040), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) :|: TRUE 10.46/3.74 f2040_0_reverse_Load(EOS(STATIC_2040), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) -> f2055_0_reverse_FieldAccess(EOS(STATIC_2055), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193))) :|: TRUE 10.46/3.74 f2055_0_reverse_FieldAccess(EOS(STATIC_2055), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193))) -> f2078_0_reverse_Store(EOS(STATIC_2078), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), o1193) :|: TRUE 10.46/3.74 f2078_0_reverse_Store(EOS(STATIC_2078), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), o1193) -> f2122_0_reverse_Load(EOS(STATIC_2122), o1193, java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) :|: TRUE 10.46/3.74 f2122_0_reverse_Load(EOS(STATIC_2122), o1193, java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193))) -> f2159_0_reverse_Load(EOS(STATIC_2159), o1193, java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193))) :|: TRUE 10.46/3.74 f2159_0_reverse_Load(EOS(STATIC_2159), o1193, java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193))) -> f2190_0_reverse_FieldAccess(EOS(STATIC_2190), o1193, java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129))) :|: TRUE 10.46/3.74 f2190_0_reverse_FieldAccess(EOS(STATIC_2190), o1193, java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1193)), java.lang.Object(List(EOC, o1033-585862129))) -> f2231_0_reverse_Load(EOS(STATIC_2231), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033put-1171688701))))) :|: TRUE 10.46/3.74 f2231_0_reverse_Load(EOS(STATIC_2231), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) -> f2259_0_reverse_Store(EOS(STATIC_2259), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) :|: TRUE 10.46/3.74 f2259_0_reverse_Store(EOS(STATIC_2259), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) -> f2290_0_reverse_JMP(EOS(STATIC_2290), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) :|: TRUE 10.46/3.74 f2290_0_reverse_JMP(EOS(STATIC_2290), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) -> f2354_0_reverse_Load(EOS(STATIC_2354), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) :|: TRUE 10.46/3.74 f2354_0_reverse_Load(EOS(STATIC_2354), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) -> f1881_0_reverse_Load(EOS(STATIC_1881), o1193, java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033-1171688701))))) :|: TRUE 10.46/3.74 f1881_0_reverse_Load(EOS(STATIC_1881), o1031, java.lang.Object(List(EOC, o1033-585862129))) -> f1929_0_reverse_NULL(EOS(STATIC_1929), o1031, java.lang.Object(List(EOC, o1033-585862129)), o1031) :|: TRUE 10.46/3.74 f1929_0_reverse_NULL(EOS(STATIC_1929), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(o1114sub)) -> f1936_0_reverse_NULL(EOS(STATIC_1936), java.lang.Object(o1114sub), java.lang.Object(List(EOC, o1033-585862129)), java.lang.Object(o1114sub)) :|: TRUE 10.46/3.74 Combined rules. Obtained 1 IRulesP rules: 10.46/3.74 f1936_0_reverse_NULL(EOS(STATIC_1936), java.lang.Object(List(EOC, java.lang.Object(o1114sub:0))), java.lang.Object(List(EOC, o1033-585862129:0)), java.lang.Object(List(EOC, java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(EOS(STATIC_1936), java.lang.Object(o1114sub:0), java.lang.Object(List(EOC, java.lang.Object(List(EOC, o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 Filtered constant ground arguments: 10.46/3.74 f1936_0_reverse_NULL(x1, x2, x3, x4) -> f1936_0_reverse_NULL(x2, x3, x4) 10.46/3.74 EOS(x1) -> EOS 10.46/3.74 List(x1, x2) -> List(x2) 10.46/3.74 Filtered duplicate arguments: 10.46/3.74 f1936_0_reverse_NULL(x1, x2, x3) -> f1936_0_reverse_NULL(x2, x3) 10.46/3.74 Finished conversion. Obtained 1 rules.P rules: 10.46/3.74 f1936_0_reverse_NULL(java.lang.Object(List(o1033-585862129:0)), java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(List(o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (9) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1936_0_reverse_NULL(java.lang.Object(List(o1033-585862129:0)), java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(List(o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (10) IRSFormatTransformerProof (EQUIVALENT) 10.46/3.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (11) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1936_0_reverse_NULL(java.lang.Object(List(o1033-585862129:0)), java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(List(o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (12) IRSwTTerminationDigraphProof (EQUIVALENT) 10.46/3.74 Constructed termination digraph! 10.46/3.74 Nodes: 10.46/3.74 (1) f1936_0_reverse_NULL(java.lang.Object(List(o1033-585862129:0)), java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(List(o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (13) 10.46/3.74 Obligation: 10.46/3.74 10.46/3.74 Termination digraph: 10.46/3.74 Nodes: 10.46/3.74 (1) f1936_0_reverse_NULL(java.lang.Object(List(o1033-585862129:0)), java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(List(o1033put-1171688701:0)))), java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (14) TempFilterProof (SOUND) 10.46/3.74 Used the following sort dictionary for filtering: 10.46/3.74 f1936_0_reverse_NULL(VARIABLE, VARIABLE) 10.46/3.74 java.lang.Object(VARIABLE) 10.46/3.74 List(VARIABLE) 10.46/3.74 Removed predefined arithmetic. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (15) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(o1114sub:0)) :|: TRUE 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (16) IRSwTToQDPProof (SOUND) 10.46/3.74 Removed the integers and created a QDP-Problem. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (17) 10.46/3.74 Obligation: 10.46/3.74 Q DP problem: 10.46/3.74 The TRS P consists of the following rules: 10.46/3.74 10.46/3.74 f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(o1114sub:0)) 10.46/3.74 10.46/3.74 R is empty. 10.46/3.74 Q is empty. 10.46/3.74 We have to consider all (P,Q,R)-chains. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (18) QDPSizeChangeProof (EQUIVALENT) 10.46/3.74 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. 10.46/3.74 10.46/3.74 From the DPs we obtained the following set of size-change graphs: 10.46/3.74 *f1936_0_reverse_NULL(java.lang.Object(List(java.lang.Object(o1114sub:0)))) -> f1936_0_reverse_NULL(java.lang.Object(o1114sub:0)) 10.46/3.74 The graph contains the following edges 1 > 1 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (19) 10.46/3.74 YES 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (20) 10.46/3.74 Obligation: 10.46/3.74 SCC of termination graph based on JBC Program. 10.46/3.74 SCC contains nodes from the following methods: ListReversePanhandleList.main([Ljava/lang/String;)V 10.46/3.74 SCC calls the following helper methods: 10.46/3.74 Performed SCC analyses: 10.46/3.74 *Used field analysis yielded the following read fields: 10.46/3.74 *List: [n] 10.46/3.74 *Marker field analysis yielded the following relations that could be markers: 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (21) SCCToIRSProof (SOUND) 10.46/3.74 Transformed FIGraph SCCs to intTRSs. Log: 10.46/3.74 Generated rules. Obtained 16 IRulesP rules: 10.46/3.74 f1585_0_reverse_FieldAccess(EOS(STATIC_1585), o672[List.n]o672, o795[List.n]o672) -> f1601_0_reverse_FieldAccess(EOS(STATIC_1601), o672[List.n]o672, o796[List.n]o672) :|: o796[List.n]o672 < o795[List.n]o672 && o795[List.n]o672 >= 0 10.46/3.74 f1601_0_reverse_FieldAccess(EOS(STATIC_1601), o672[List.n]o672, o796[List.n]o672) -> f1622_0_reverse_Store(EOS(STATIC_1622), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1622_0_reverse_Store(EOS(STATIC_1622), o672[List.n]o672, o796[List.n]o672) -> f1657_0_reverse_Load(EOS(STATIC_1657), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1657_0_reverse_Load(EOS(STATIC_1657), o672[List.n]o672, o796[List.n]o672) -> f1690_0_reverse_Load(EOS(STATIC_1690), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1690_0_reverse_Load(EOS(STATIC_1690), o672[List.n]o672, o796[List.n]o672) -> f1702_0_reverse_FieldAccess(EOS(STATIC_1702), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1702_0_reverse_FieldAccess(EOS(STATIC_1702), o672[List.n]o672, o796[List.n]o672) -> f1740_0_reverse_Load(EOS(STATIC_1740), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1740_0_reverse_Load(EOS(STATIC_1740), o672[List.n]o672, o796[List.n]o672) -> f1771_0_reverse_Store(EOS(STATIC_1771), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1771_0_reverse_Store(EOS(STATIC_1771), o672[List.n]o672, o796[List.n]o672) -> f1791_0_reverse_JMP(EOS(STATIC_1791), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1791_0_reverse_JMP(EOS(STATIC_1791), o672[List.n]o672, o796[List.n]o672) -> f1906_0_reverse_Load(EOS(STATIC_1906), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1906_0_reverse_Load(EOS(STATIC_1906), o672[List.n]o672, o796[List.n]o672) -> f1479_0_reverse_Load(EOS(STATIC_1479), o672[List.n]o672, o796[List.n]o672) :|: TRUE 10.46/3.74 f1479_0_reverse_Load(EOS(STATIC_1479), o672[List.n]o672, o671[List.n]o672) -> f1504_0_reverse_NULL(EOS(STATIC_1504), o672[List.n]o672, o671[List.n]o672) :|: TRUE 10.46/3.74 f1504_0_reverse_NULL(EOS(STATIC_1504), o672[List.n]o672, o671[List.n]o672) -> f1513_0_reverse_Load(EOS(STATIC_1513), o672[List.n]o672, o671[List.n]o672) :|: TRUE 10.46/3.74 f1513_0_reverse_Load(EOS(STATIC_1513), o672[List.n]o672, o671[List.n]o672) -> f1530_0_reverse_Store(EOS(STATIC_1530), o672[List.n]o672, o671[List.n]o672) :|: TRUE 10.46/3.74 f1530_0_reverse_Store(EOS(STATIC_1530), o672[List.n]o672, o671[List.n]o672) -> f1550_0_reverse_Load(EOS(STATIC_1550), o672[List.n]o672, o671[List.n]o672) :|: TRUE 10.46/3.74 f1550_0_reverse_Load(EOS(STATIC_1550), o672[List.n]o672, o671[List.n]o672) -> f1562_0_reverse_FieldAccess(EOS(STATIC_1562), o672[List.n]o672, o671[List.n]o672) :|: TRUE 10.46/3.74 f1562_0_reverse_FieldAccess(EOS(STATIC_1562), o672[List.n]o672, o671[List.n]o672) -> f1585_0_reverse_FieldAccess(EOS(STATIC_1585), o672[List.n]o672, o671[List.n]o672) :|: o672[List.n]o672 > 0 && o671[List.n]o672 > 0 10.46/3.74 Combined rules. Obtained 1 IRulesP rules: 10.46/3.74 f1585_0_reverse_FieldAccess(EOS(STATIC_1585), o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(EOS(STATIC_1585), o672[List.n]o672:0, o796[List.n]o672:0) :|: o795[List.n]o672:0 > -1 && o796[List.n]o672:0 < o795[List.n]o672:0 && o672[List.n]o672:0 > 0 && o796[List.n]o672:0 > 0 10.46/3.74 Filtered constant ground arguments: 10.46/3.74 f1585_0_reverse_FieldAccess(x1, x2, x3) -> f1585_0_reverse_FieldAccess(x2, x3) 10.46/3.74 EOS(x1) -> EOS 10.46/3.74 Finished conversion. Obtained 1 rules.P rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o796[List.n]o672:0) :|: o796[List.n]o672:0 < o795[List.n]o672:0 && o795[List.n]o672:0 > -1 && o796[List.n]o672:0 > 0 && o672[List.n]o672:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (22) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o796[List.n]o672:0) :|: o796[List.n]o672:0 < o795[List.n]o672:0 && o795[List.n]o672:0 > -1 && o796[List.n]o672:0 > 0 && o672[List.n]o672:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (23) IRSFormatTransformerProof (EQUIVALENT) 10.46/3.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (24) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o796[List.n]o672:0) :|: o796[List.n]o672:0 < o795[List.n]o672:0 && o795[List.n]o672:0 > -1 && o796[List.n]o672:0 > 0 && o672[List.n]o672:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (25) IRSwTTerminationDigraphProof (EQUIVALENT) 10.46/3.74 Constructed termination digraph! 10.46/3.74 Nodes: 10.46/3.74 (1) f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o796[List.n]o672:0) :|: o796[List.n]o672:0 < o795[List.n]o672:0 && o795[List.n]o672:0 > -1 && o796[List.n]o672:0 > 0 && o672[List.n]o672:0 > 0 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (26) 10.46/3.74 Obligation: 10.46/3.74 10.46/3.74 Termination digraph: 10.46/3.74 Nodes: 10.46/3.74 (1) f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o795[List.n]o672:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0, o796[List.n]o672:0) :|: o796[List.n]o672:0 < o795[List.n]o672:0 && o795[List.n]o672:0 > -1 && o796[List.n]o672:0 > 0 && o672[List.n]o672:0 > 0 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (27) IntTRSCompressionProof (EQUIVALENT) 10.46/3.74 Compressed rules. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (28) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0, o795[List.n]o672:0:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0, o796[List.n]o672:0:0) :|: o796[List.n]o672:0:0 > 0 && o672[List.n]o672:0:0 > 0 && o795[List.n]o672:0:0 > -1 && o796[List.n]o672:0:0 < o795[List.n]o672:0:0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (29) FilterProof (EQUIVALENT) 10.46/3.74 Used the following sort dictionary for filtering: 10.46/3.74 f1585_0_reverse_FieldAccess(INTEGER, INTEGER) 10.46/3.74 Replaced non-predefined constructor symbols by 0. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (30) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0, o795[List.n]o672:0:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0, o796[List.n]o672:0:0) :|: o796[List.n]o672:0:0 > 0 && o672[List.n]o672:0:0 > 0 && o795[List.n]o672:0:0 > -1 && o796[List.n]o672:0:0 < o795[List.n]o672:0:0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (31) IntTRSCompressionProof (EQUIVALENT) 10.46/3.74 Compressed rules. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (32) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o795[List.n]o672:0:0:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o796[List.n]o672:0:0:0) :|: o795[List.n]o672:0:0:0 > -1 && o796[List.n]o672:0:0:0 < o795[List.n]o672:0:0:0 && o672[List.n]o672:0:0:0 > 0 && o796[List.n]o672:0:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (33) RankingReductionPairProof (EQUIVALENT) 10.46/3.74 Interpretation: 10.46/3.74 [ f1585_0_reverse_FieldAccess ] = f1585_0_reverse_FieldAccess_2 10.46/3.74 10.46/3.74 The following rules are decreasing: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o795[List.n]o672:0:0:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o796[List.n]o672:0:0:0) :|: o795[List.n]o672:0:0:0 > -1 && o796[List.n]o672:0:0:0 < o795[List.n]o672:0:0:0 && o672[List.n]o672:0:0:0 > 0 && o796[List.n]o672:0:0:0 > 0 10.46/3.74 10.46/3.74 The following rules are bounded: 10.46/3.74 f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o795[List.n]o672:0:0:0) -> f1585_0_reverse_FieldAccess(o672[List.n]o672:0:0:0, o796[List.n]o672:0:0:0) :|: o795[List.n]o672:0:0:0 > -1 && o796[List.n]o672:0:0:0 < o795[List.n]o672:0:0:0 && o672[List.n]o672:0:0:0 > 0 && o796[List.n]o672:0:0:0 > 0 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (34) 10.46/3.74 YES 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (35) 10.46/3.74 Obligation: 10.46/3.74 SCC of termination graph based on JBC Program. 10.46/3.74 SCC contains nodes from the following methods: ListReversePanhandleList.main([Ljava/lang/String;)V 10.46/3.74 SCC calls the following helper methods: 10.46/3.74 Performed SCC analyses: 10.46/3.74 *Used field analysis yielded the following read fields: 10.46/3.74 10.46/3.74 *Marker field analysis yielded the following relations that could be markers: 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (36) SCCToIRSProof (SOUND) 10.46/3.74 Transformed FIGraph SCCs to intTRSs. Log: 10.46/3.74 Generated rules. Obtained 17 IRulesP rules: 10.46/3.74 f715_0_createList_Load(EOS(STATIC_715), i84) -> f761_0_createList_LE(EOS(STATIC_761), i84, i84) :|: TRUE 10.46/3.74 f761_0_createList_LE(EOS(STATIC_761), i106, i106) -> f773_0_createList_LE(EOS(STATIC_773), i106, i106) :|: TRUE 10.46/3.74 f773_0_createList_LE(EOS(STATIC_773), i106, i106) -> f785_0_createList_New(EOS(STATIC_785), i106) :|: i106 > 0 10.46/3.74 f785_0_createList_New(EOS(STATIC_785), i106) -> f793_0_createList_Duplicate(EOS(STATIC_793), i106) :|: TRUE 10.46/3.74 f793_0_createList_Duplicate(EOS(STATIC_793), i106) -> f803_0_createList_Load(EOS(STATIC_803), i106) :|: TRUE 10.46/3.74 f803_0_createList_Load(EOS(STATIC_803), i106) -> f813_0_createList_InvokeMethod(EOS(STATIC_813), i106) :|: TRUE 10.46/3.74 f813_0_createList_InvokeMethod(EOS(STATIC_813), i106) -> f824_0__init__Load(EOS(STATIC_824), i106) :|: TRUE 10.46/3.74 f824_0__init__Load(EOS(STATIC_824), i106) -> f843_0__init__InvokeMethod(EOS(STATIC_843), i106) :|: TRUE 10.46/3.74 f843_0__init__InvokeMethod(EOS(STATIC_843), i106) -> f853_0__init__Load(EOS(STATIC_853), i106) :|: TRUE 10.46/3.74 f853_0__init__Load(EOS(STATIC_853), i106) -> f863_0__init__Load(EOS(STATIC_863), i106) :|: TRUE 10.46/3.74 f863_0__init__Load(EOS(STATIC_863), i106) -> f876_0__init__FieldAccess(EOS(STATIC_876), i106) :|: TRUE 10.46/3.74 f876_0__init__FieldAccess(EOS(STATIC_876), i106) -> f893_0__init__Return(EOS(STATIC_893), i106) :|: TRUE 10.46/3.74 f893_0__init__Return(EOS(STATIC_893), i106) -> f907_0_createList_Store(EOS(STATIC_907), i106) :|: TRUE 10.46/3.74 f907_0_createList_Store(EOS(STATIC_907), i106) -> f919_0_createList_JMP(EOS(STATIC_919), i106) :|: TRUE 10.46/3.74 f919_0_createList_JMP(EOS(STATIC_919), i106) -> f945_0_createList_Inc(EOS(STATIC_945), i106) :|: TRUE 10.46/3.74 f945_0_createList_Inc(EOS(STATIC_945), i106) -> f707_0_createList_Inc(EOS(STATIC_707), i106) :|: TRUE 10.46/3.74 f707_0_createList_Inc(EOS(STATIC_707), i14) -> f715_0_createList_Load(EOS(STATIC_715), i14 + -1) :|: TRUE 10.46/3.74 Combined rules. Obtained 1 IRulesP rules: 10.46/3.74 f715_0_createList_Load(EOS(STATIC_715), i84:0) -> f715_0_createList_Load(EOS(STATIC_715), i84:0 - 1) :|: i84:0 > 0 10.46/3.74 Filtered constant ground arguments: 10.46/3.74 f715_0_createList_Load(x1, x2) -> f715_0_createList_Load(x2) 10.46/3.74 EOS(x1) -> EOS 10.46/3.74 Finished conversion. Obtained 1 rules.P rules: 10.46/3.74 f715_0_createList_Load(i84:0) -> f715_0_createList_Load(i84:0 - 1) :|: i84:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (37) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f715_0_createList_Load(i84:0) -> f715_0_createList_Load(i84:0 - 1) :|: i84:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (38) IRSFormatTransformerProof (EQUIVALENT) 10.46/3.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (39) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f715_0_createList_Load(i84:0) -> f715_0_createList_Load(arith) :|: i84:0 > 0 && arith = i84:0 - 1 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (40) IRSwTTerminationDigraphProof (EQUIVALENT) 10.46/3.74 Constructed termination digraph! 10.46/3.74 Nodes: 10.46/3.74 (1) f715_0_createList_Load(i84:0) -> f715_0_createList_Load(arith) :|: i84:0 > 0 && arith = i84:0 - 1 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (41) 10.46/3.74 Obligation: 10.46/3.74 10.46/3.74 Termination digraph: 10.46/3.74 Nodes: 10.46/3.74 (1) f715_0_createList_Load(i84:0) -> f715_0_createList_Load(arith) :|: i84:0 > 0 && arith = i84:0 - 1 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (42) IntTRSCompressionProof (EQUIVALENT) 10.46/3.74 Compressed rules. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (43) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f715_0_createList_Load(i84:0:0) -> f715_0_createList_Load(i84:0:0 - 1) :|: i84:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (44) TempFilterProof (SOUND) 10.46/3.74 Used the following sort dictionary for filtering: 10.46/3.74 f715_0_createList_Load(INTEGER) 10.46/3.74 Replaced non-predefined constructor symbols by 0. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (45) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f715_0_createList_Load(i84:0:0) -> f715_0_createList_Load(c) :|: c = i84:0:0 - 1 && i84:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (46) RankingReductionPairProof (EQUIVALENT) 10.46/3.74 Interpretation: 10.46/3.74 [ f715_0_createList_Load ] = f715_0_createList_Load_1 10.46/3.74 10.46/3.74 The following rules are decreasing: 10.46/3.74 f715_0_createList_Load(i84:0:0) -> f715_0_createList_Load(c) :|: c = i84:0:0 - 1 && i84:0:0 > 0 10.46/3.74 10.46/3.74 The following rules are bounded: 10.46/3.74 f715_0_createList_Load(i84:0:0) -> f715_0_createList_Load(c) :|: c = i84:0:0 - 1 && i84:0:0 > 0 10.46/3.74 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (47) 10.46/3.74 YES 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (48) 10.46/3.74 Obligation: 10.46/3.74 SCC of termination graph based on JBC Program. 10.46/3.74 SCC contains nodes from the following methods: ListReversePanhandleList.main([Ljava/lang/String;)V 10.46/3.74 SCC calls the following helper methods: 10.46/3.74 Performed SCC analyses: 10.46/3.74 *Used field analysis yielded the following read fields: 10.46/3.74 10.46/3.74 *Marker field analysis yielded the following relations that could be markers: 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (49) SCCToIRSProof (SOUND) 10.46/3.74 Transformed FIGraph SCCs to intTRSs. Log: 10.46/3.74 Generated rules. Obtained 17 IRulesP rules: 10.46/3.74 f630_0_createList_Load(EOS(STATIC_630), i81) -> f631_0_createList_LE(EOS(STATIC_631), i81, i81) :|: TRUE 10.46/3.74 f631_0_createList_LE(EOS(STATIC_631), i83, i83) -> f633_0_createList_LE(EOS(STATIC_633), i83, i83) :|: TRUE 10.46/3.74 f633_0_createList_LE(EOS(STATIC_633), i83, i83) -> f635_0_createList_New(EOS(STATIC_635), i83) :|: i83 > 0 10.46/3.74 f635_0_createList_New(EOS(STATIC_635), i83) -> f637_0_createList_Duplicate(EOS(STATIC_637), i83) :|: TRUE 10.46/3.74 f637_0_createList_Duplicate(EOS(STATIC_637), i83) -> f639_0_createList_Load(EOS(STATIC_639), i83) :|: TRUE 10.46/3.74 f639_0_createList_Load(EOS(STATIC_639), i83) -> f641_0_createList_InvokeMethod(EOS(STATIC_641), i83) :|: TRUE 10.46/3.74 f641_0_createList_InvokeMethod(EOS(STATIC_641), i83) -> f655_0__init__Load(EOS(STATIC_655), i83) :|: TRUE 10.46/3.74 f655_0__init__Load(EOS(STATIC_655), i83) -> f662_0__init__InvokeMethod(EOS(STATIC_662), i83) :|: TRUE 10.46/3.74 f662_0__init__InvokeMethod(EOS(STATIC_662), i83) -> f670_0__init__Load(EOS(STATIC_670), i83) :|: TRUE 10.46/3.74 f670_0__init__Load(EOS(STATIC_670), i83) -> f684_0__init__Load(EOS(STATIC_684), i83) :|: TRUE 10.46/3.74 f684_0__init__Load(EOS(STATIC_684), i83) -> f693_0__init__FieldAccess(EOS(STATIC_693), i83) :|: TRUE 10.46/3.74 f693_0__init__FieldAccess(EOS(STATIC_693), i83) -> f705_0__init__Return(EOS(STATIC_705), i83) :|: TRUE 10.46/3.74 f705_0__init__Return(EOS(STATIC_705), i83) -> f712_0_createList_Store(EOS(STATIC_712), i83) :|: TRUE 10.46/3.74 f712_0_createList_Store(EOS(STATIC_712), i83) -> f714_0_createList_JMP(EOS(STATIC_714), i83) :|: TRUE 10.46/3.74 f714_0_createList_JMP(EOS(STATIC_714), i83) -> f756_0_createList_Inc(EOS(STATIC_756), i83) :|: TRUE 10.46/3.74 f756_0_createList_Inc(EOS(STATIC_756), i83) -> f629_0_createList_Inc(EOS(STATIC_629), i83) :|: TRUE 10.46/3.74 f629_0_createList_Inc(EOS(STATIC_629), i78) -> f630_0_createList_Load(EOS(STATIC_630), i78 + -1) :|: TRUE 10.46/3.74 Combined rules. Obtained 1 IRulesP rules: 10.46/3.74 f630_0_createList_Load(EOS(STATIC_630), i81:0) -> f630_0_createList_Load(EOS(STATIC_630), i81:0 - 1) :|: i81:0 > 0 10.46/3.74 Filtered constant ground arguments: 10.46/3.74 f630_0_createList_Load(x1, x2) -> f630_0_createList_Load(x2) 10.46/3.74 EOS(x1) -> EOS 10.46/3.74 Finished conversion. Obtained 1 rules.P rules: 10.46/3.74 f630_0_createList_Load(i81:0) -> f630_0_createList_Load(i81:0 - 1) :|: i81:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (50) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f630_0_createList_Load(i81:0) -> f630_0_createList_Load(i81:0 - 1) :|: i81:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (51) IRSFormatTransformerProof (EQUIVALENT) 10.46/3.74 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (52) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f630_0_createList_Load(i81:0) -> f630_0_createList_Load(arith) :|: i81:0 > 0 && arith = i81:0 - 1 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (53) IRSwTTerminationDigraphProof (EQUIVALENT) 10.46/3.74 Constructed termination digraph! 10.46/3.74 Nodes: 10.46/3.74 (1) f630_0_createList_Load(i81:0) -> f630_0_createList_Load(arith) :|: i81:0 > 0 && arith = i81:0 - 1 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (54) 10.46/3.74 Obligation: 10.46/3.74 10.46/3.74 Termination digraph: 10.46/3.74 Nodes: 10.46/3.74 (1) f630_0_createList_Load(i81:0) -> f630_0_createList_Load(arith) :|: i81:0 > 0 && arith = i81:0 - 1 10.46/3.74 10.46/3.74 Arcs: 10.46/3.74 (1) -> (1) 10.46/3.74 10.46/3.74 This digraph is fully evaluated! 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (55) IntTRSCompressionProof (EQUIVALENT) 10.46/3.74 Compressed rules. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (56) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f630_0_createList_Load(i81:0:0) -> f630_0_createList_Load(i81:0:0 - 1) :|: i81:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (57) TempFilterProof (SOUND) 10.46/3.74 Used the following sort dictionary for filtering: 10.46/3.74 f630_0_createList_Load(INTEGER) 10.46/3.74 Replaced non-predefined constructor symbols by 0. 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (58) 10.46/3.74 Obligation: 10.46/3.74 Rules: 10.46/3.74 f630_0_createList_Load(i81:0:0) -> f630_0_createList_Load(c) :|: c = i81:0:0 - 1 && i81:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (59) PolynomialOrderProcessor (EQUIVALENT) 10.46/3.74 Found the following polynomial interpretation: 10.46/3.74 [f630_0_createList_Load(x)] = x 10.46/3.74 10.46/3.74 The following rules are decreasing: 10.46/3.74 f630_0_createList_Load(i81:0:0) -> f630_0_createList_Load(c) :|: c = i81:0:0 - 1 && i81:0:0 > 0 10.46/3.74 The following rules are bounded: 10.46/3.74 f630_0_createList_Load(i81:0:0) -> f630_0_createList_Load(c) :|: c = i81:0:0 - 1 && i81:0:0 > 0 10.46/3.74 10.46/3.74 ---------------------------------------- 10.46/3.74 10.46/3.74 (60) 10.46/3.74 YES 10.67/3.85 EOF