15.89/10.03 YES 15.89/10.04 proof of /export/starexec/sandbox2/benchmark/theBenchmark.jar 15.89/10.04 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 15.89/10.04 15.89/10.04 15.89/10.04 termination of the given Bare JBC problem could be proven: 15.89/10.04 15.89/10.04 (0) Bare JBC problem 15.89/10.04 (1) BareJBCToJBCProof [EQUIVALENT, 95 ms] 15.89/10.04 (2) JBC problem 15.89/10.04 (3) JBCToGraph [EQUIVALENT, 585 ms] 15.89/10.04 (4) JBCTerminationGraph 15.89/10.04 (5) TerminationGraphToSCCProof [SOUND, 0 ms] 15.89/10.04 (6) AND 15.89/10.04 (7) JBCTerminationSCC 15.89/10.04 (8) SCCToIRSProof [SOUND, 14 ms] 15.89/10.04 (9) IRSwT 15.89/10.04 (10) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 15.89/10.04 (11) IRSwT 15.89/10.04 (12) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 15.89/10.04 (13) IRSwT 15.89/10.04 (14) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (15) IRSwT 15.89/10.04 (16) IRSwTChainingProof [EQUIVALENT, 0 ms] 15.89/10.04 (17) IRSwT 15.89/10.04 (18) IRSwTTerminationDigraphProof [EQUIVALENT, 7 ms] 15.89/10.04 (19) IRSwT 15.89/10.04 (20) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (21) IRSwT 15.89/10.04 (22) IRSwTChainingProof [EQUIVALENT, 0 ms] 15.89/10.04 (23) IRSwT 15.89/10.04 (24) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 15.89/10.04 (25) IRSwT 15.89/10.04 (26) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (27) IRSwT 15.89/10.04 (28) TempFilterProof [SOUND, 36 ms] 15.89/10.04 (29) IntTRS 15.89/10.04 (30) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 15.89/10.04 (31) YES 15.89/10.04 (32) JBCTerminationSCC 15.89/10.04 (33) SCCToIRSProof [SOUND, 49 ms] 15.89/10.04 (34) IRSwT 15.89/10.04 (35) IRSFormatTransformerProof [EQUIVALENT, 0 ms] 15.89/10.04 (36) IRSwT 15.89/10.04 (37) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 15.89/10.04 (38) IRSwT 15.89/10.04 (39) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (40) IRSwT 15.89/10.04 (41) IRSwTChainingProof [EQUIVALENT, 0 ms] 15.89/10.04 (42) IRSwT 15.89/10.04 (43) IRSwTTerminationDigraphProof [EQUIVALENT, 3 ms] 15.89/10.04 (44) IRSwT 15.89/10.04 (45) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (46) IRSwT 15.89/10.04 (47) IRSwTChainingProof [EQUIVALENT, 0 ms] 15.89/10.04 (48) IRSwT 15.89/10.04 (49) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms] 15.89/10.04 (50) IRSwT 15.89/10.04 (51) IntTRSCompressionProof [EQUIVALENT, 0 ms] 15.89/10.04 (52) IRSwT 15.89/10.04 (53) TempFilterProof [SOUND, 16 ms] 15.89/10.04 (54) IntTRS 15.89/10.04 (55) PolynomialOrderProcessor [EQUIVALENT, 0 ms] 15.89/10.04 (56) YES 15.89/10.04 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (0) 15.89/10.04 Obligation: 15.89/10.04 need to prove termination of the following program: 15.89/10.04 public class Et3 { 15.89/10.04 public static void main(String[] args) { 15.89/10.04 Random.args = args; 15.89/10.04 int a = Random.random(); 15.89/10.04 int b = Random.random(); 15.89/10.04 while (a > 0) { 15.89/10.04 a = a + b; 15.89/10.04 b = b - 1; 15.89/10.04 15.89/10.04 } 15.89/10.04 } 15.89/10.04 } 15.89/10.04 15.89/10.04 // bin(entry(C,D),[C>=1,A=C+D,B=D-1],entry(A,B)) 15.89/10.04 15.89/10.04 public class Random { 15.89/10.04 static String[] args; 15.89/10.04 static int index = 0; 15.89/10.04 15.89/10.04 public static int random() { 15.89/10.04 if (index >= args.length) 15.89/10.04 return 0; 15.89/10.04 15.89/10.04 String string = args[index]; 15.89/10.04 index++; 15.89/10.04 return string.length(); 15.89/10.04 } 15.89/10.04 } 15.89/10.04 15.89/10.04 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (1) BareJBCToJBCProof (EQUIVALENT) 15.89/10.04 initialized classpath 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (2) 15.89/10.04 Obligation: 15.89/10.04 need to prove termination of the following program: 15.89/10.04 public class Et3 { 15.89/10.04 public static void main(String[] args) { 15.89/10.04 Random.args = args; 15.89/10.04 int a = Random.random(); 15.89/10.04 int b = Random.random(); 15.89/10.04 while (a > 0) { 15.89/10.04 a = a + b; 15.89/10.04 b = b - 1; 15.89/10.04 15.89/10.04 } 15.89/10.04 } 15.89/10.04 } 15.89/10.04 15.89/10.04 // bin(entry(C,D),[C>=1,A=C+D,B=D-1],entry(A,B)) 15.89/10.04 15.89/10.04 public class Random { 15.89/10.04 static String[] args; 15.89/10.04 static int index = 0; 15.89/10.04 15.89/10.04 public static int random() { 15.89/10.04 if (index >= args.length) 15.89/10.04 return 0; 15.89/10.04 15.89/10.04 String string = args[index]; 15.89/10.04 index++; 15.89/10.04 return string.length(); 15.89/10.04 } 15.89/10.04 } 15.89/10.04 15.89/10.04 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (3) JBCToGraph (EQUIVALENT) 15.89/10.04 Constructed TerminationGraph. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (4) 15.89/10.04 Obligation: 15.89/10.04 Termination Graph based on JBC Program: 15.89/10.04 Et3.main([Ljava/lang/String;)V: Graph of 234 nodes with 2 SCCs. 15.89/10.04 15.89/10.04 15.89/10.04 15.89/10.04 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (5) TerminationGraphToSCCProof (SOUND) 15.89/10.04 Splitted TerminationGraph to 2 SCCss. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (6) 15.89/10.04 Complex Obligation (AND) 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (7) 15.89/10.04 Obligation: 15.89/10.04 SCC of termination graph based on JBC Program. 15.89/10.04 SCC contains nodes from the following methods: Et3.main([Ljava/lang/String;)V 15.89/10.04 SCC calls the following helper methods: 15.89/10.04 Performed SCC analyses: 15.89/10.04 *Used field analysis yielded the following read fields: 15.89/10.04 15.89/10.04 *Marker field analysis yielded the following relations that could be markers: 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (8) SCCToIRSProof (SOUND) 15.89/10.04 Transformed FIGraph SCCs to intTRSs. Log: 15.89/10.04 Generated rules. Obtained 13 IRulesP rules: 15.89/10.04 f3891_0_main_LE(EOS(STATIC_3891), i1099, i989, i1099) -> f3900_0_main_LE(EOS(STATIC_3900), i1099, i989, i1099) :|: TRUE 15.89/10.04 f3900_0_main_LE(EOS(STATIC_3900), i1099, i989, i1099) -> f3911_0_main_Load(EOS(STATIC_3911), i1099, i989) :|: i1099 > 0 15.89/10.04 f3911_0_main_Load(EOS(STATIC_3911), i1099, i989) -> f3930_0_main_Load(EOS(STATIC_3930), i989, i1099) :|: TRUE 15.89/10.04 f3930_0_main_Load(EOS(STATIC_3930), i989, i1099) -> f3936_0_main_IntArithmetic(EOS(STATIC_3936), i989, i1099, i989) :|: TRUE 15.89/10.04 f3936_0_main_IntArithmetic(EOS(STATIC_3936), i989, i1099, i989) -> f3943_0_main_Store(EOS(STATIC_3943), i989, i1099 + i989) :|: i1099 > 0 15.89/10.04 f3943_0_main_Store(EOS(STATIC_3943), i989, i1108) -> f3949_0_main_Load(EOS(STATIC_3949), i1108, i989) :|: TRUE 15.89/10.04 f3949_0_main_Load(EOS(STATIC_3949), i1108, i989) -> f4246_0_main_ConstantStackPush(EOS(STATIC_4246), i1108, i989) :|: TRUE 15.89/10.04 f4246_0_main_ConstantStackPush(EOS(STATIC_4246), i1108, i989) -> f4250_0_main_IntArithmetic(EOS(STATIC_4250), i1108, i989, 1) :|: TRUE 15.89/10.04 f4250_0_main_IntArithmetic(EOS(STATIC_4250), i1108, i989, matching1) -> f4251_0_main_Store(EOS(STATIC_4251), i1108, i989 - 1) :|: TRUE && matching1 = 1 15.89/10.04 f4251_0_main_Store(EOS(STATIC_4251), i1108, i1182) -> f4252_0_main_JMP(EOS(STATIC_4252), i1108, i1182) :|: TRUE 15.89/10.04 f4252_0_main_JMP(EOS(STATIC_4252), i1108, i1182) -> f4336_0_main_Load(EOS(STATIC_4336), i1108, i1182) :|: TRUE 15.89/10.04 f4336_0_main_Load(EOS(STATIC_4336), i1108, i1182) -> f3551_0_main_Load(EOS(STATIC_3551), i1108, i1182) :|: TRUE 15.89/10.04 f3551_0_main_Load(EOS(STATIC_3551), i988, i989) -> f3891_0_main_LE(EOS(STATIC_3891), i988, i989, i988) :|: TRUE 15.89/10.04 Combined rules. Obtained 1 IRulesP rules: 15.89/10.04 f3891_0_main_LE(EOS(STATIC_3891), i1099:0, i989:0, i1099:0) -> f3891_0_main_LE(EOS(STATIC_3891), i1099:0 + i989:0, i989:0 - 1, i1099:0 + i989:0) :|: i1099:0 > 0 15.89/10.04 Filtered constant ground arguments: 15.89/10.04 f3891_0_main_LE(x1, x2, x3, x4) -> f3891_0_main_LE(x2, x3, x4) 15.89/10.04 EOS(x1) -> EOS 15.89/10.04 Filtered duplicate arguments: 15.89/10.04 f3891_0_main_LE(x1, x2, x3) -> f3891_0_main_LE(x2, x3) 15.89/10.04 Finished conversion. Obtained 1 rules.P rules: 15.89/10.04 f3891_0_main_LE(i989:0, i1099:0) -> f3891_0_main_LE(i989:0 - 1, i1099:0 + i989:0) :|: i1099:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (9) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(i989:0, i1099:0) -> f3891_0_main_LE(i989:0 - 1, i1099:0 + i989:0) :|: i1099:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (10) IRSFormatTransformerProof (EQUIVALENT) 15.89/10.04 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (11) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(i989:0, i1099:0) -> f3891_0_main_LE(arith, arith1) :|: i1099:0 > 0 && arith = i989:0 - 1 && arith1 = i1099:0 + i989:0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (12) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(i989:0, i1099:0) -> f3891_0_main_LE(arith, arith1) :|: i1099:0 > 0 && arith = i989:0 - 1 && arith1 = i1099:0 + i989:0 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (13) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(i989:0, i1099:0) -> f3891_0_main_LE(arith, arith1) :|: i1099:0 > 0 && arith = i989:0 - 1 && arith1 = i1099:0 + i989:0 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (14) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (15) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(i989:0:0, i1099:0:0) -> f3891_0_main_LE(i989:0:0 - 1, i1099:0:0 + i989:0:0) :|: i1099:0:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (16) IRSwTChainingProof (EQUIVALENT) 15.89/10.04 Chaining! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (17) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (18) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (19) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (20) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (21) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(x:0, x1:0) -> f3891_0_main_LE(x:0 - 2, x1:0 + 2 * x:0 - 1) :|: x1:0 + x:0 >= 1 && x1:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (22) IRSwTChainingProof (EQUIVALENT) 15.89/10.04 Chaining! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (23) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (24) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (25) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f3891_0_main_LE(x, x1) -> f3891_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (26) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (27) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(x:0, x1:0) -> f3891_0_main_LE(x:0 - 4, x1:0 + 4 * x:0 - 6) :|: x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (28) TempFilterProof (SOUND) 15.89/10.04 Used the following sort dictionary for filtering: 15.89/10.04 f3891_0_main_LE(INTEGER, INTEGER) 15.89/10.04 Replaced non-predefined constructor symbols by 0. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (29) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f3891_0_main_LE(x:0, x1:0) -> f3891_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (30) PolynomialOrderProcessor (EQUIVALENT) 15.89/10.04 Found the following polynomial interpretation: 15.89/10.04 [f3891_0_main_LE(x, x1)] = -2 + 2*x + x^2 + 2*x1 15.89/10.04 15.89/10.04 The following rules are decreasing: 15.89/10.04 f3891_0_main_LE(x:0, x1:0) -> f3891_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 The following rules are bounded: 15.89/10.04 f3891_0_main_LE(x:0, x1:0) -> f3891_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (31) 15.89/10.04 YES 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (32) 15.89/10.04 Obligation: 15.89/10.04 SCC of termination graph based on JBC Program. 15.89/10.04 SCC contains nodes from the following methods: Et3.main([Ljava/lang/String;)V 15.89/10.04 SCC calls the following helper methods: 15.89/10.04 Performed SCC analyses: 15.89/10.04 *Used field analysis yielded the following read fields: 15.89/10.04 15.89/10.04 *Marker field analysis yielded the following relations that could be markers: 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (33) SCCToIRSProof (SOUND) 15.89/10.04 Transformed FIGraph SCCs to intTRSs. Log: 15.89/10.04 Generated rules. Obtained 13 IRulesP rules: 15.89/10.04 f2903_0_main_LE(EOS(STATIC_2903), i823, i696, i823) -> f2906_0_main_LE(EOS(STATIC_2906), i823, i696, i823) :|: TRUE 15.89/10.04 f2906_0_main_LE(EOS(STATIC_2906), i823, i696, i823) -> f3045_0_main_Load(EOS(STATIC_3045), i823, i696) :|: i823 > 0 15.89/10.04 f3045_0_main_Load(EOS(STATIC_3045), i823, i696) -> f3203_0_main_Load(EOS(STATIC_3203), i696, i823) :|: TRUE 15.89/10.04 f3203_0_main_Load(EOS(STATIC_3203), i696, i823) -> f3557_0_main_IntArithmetic(EOS(STATIC_3557), i696, i823, i696) :|: TRUE 15.89/10.04 f3557_0_main_IntArithmetic(EOS(STATIC_3557), i696, i823, i696) -> f3893_0_main_Store(EOS(STATIC_3893), i696, i823 + i696) :|: i823 > 0 15.89/10.04 f3893_0_main_Store(EOS(STATIC_3893), i696, i1095) -> f3903_0_main_Load(EOS(STATIC_3903), i1095, i696) :|: TRUE 15.89/10.04 f3903_0_main_Load(EOS(STATIC_3903), i1095, i696) -> f3924_0_main_ConstantStackPush(EOS(STATIC_3924), i1095, i696) :|: TRUE 15.89/10.04 f3924_0_main_ConstantStackPush(EOS(STATIC_3924), i1095, i696) -> f3932_0_main_IntArithmetic(EOS(STATIC_3932), i1095, i696, 1) :|: TRUE 15.89/10.04 f3932_0_main_IntArithmetic(EOS(STATIC_3932), i1095, i696, matching1) -> f3940_0_main_Store(EOS(STATIC_3940), i1095, i696 - 1) :|: TRUE && matching1 = 1 15.89/10.04 f3940_0_main_Store(EOS(STATIC_3940), i1095, i1107) -> f3946_0_main_JMP(EOS(STATIC_3946), i1095, i1107) :|: TRUE 15.89/10.04 f3946_0_main_JMP(EOS(STATIC_3946), i1095, i1107) -> f4240_0_main_Load(EOS(STATIC_4240), i1095, i1107) :|: TRUE 15.89/10.04 f4240_0_main_Load(EOS(STATIC_4240), i1095, i1107) -> f2891_0_main_Load(EOS(STATIC_2891), i1095, i1107) :|: TRUE 15.89/10.04 f2891_0_main_Load(EOS(STATIC_2891), i695, i696) -> f2903_0_main_LE(EOS(STATIC_2903), i695, i696, i695) :|: TRUE 15.89/10.04 Combined rules. Obtained 1 IRulesP rules: 15.89/10.04 f2903_0_main_LE(EOS(STATIC_2903), i823:0, i696:0, i823:0) -> f2903_0_main_LE(EOS(STATIC_2903), i823:0 + i696:0, i696:0 - 1, i823:0 + i696:0) :|: i823:0 > 0 15.89/10.04 Filtered constant ground arguments: 15.89/10.04 f2903_0_main_LE(x1, x2, x3, x4) -> f2903_0_main_LE(x2, x3, x4) 15.89/10.04 EOS(x1) -> EOS 15.89/10.04 Filtered duplicate arguments: 15.89/10.04 f2903_0_main_LE(x1, x2, x3) -> f2903_0_main_LE(x2, x3) 15.89/10.04 Finished conversion. Obtained 1 rules.P rules: 15.89/10.04 f2903_0_main_LE(i696:0, i823:0) -> f2903_0_main_LE(i696:0 - 1, i823:0 + i696:0) :|: i823:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (34) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(i696:0, i823:0) -> f2903_0_main_LE(i696:0 - 1, i823:0 + i696:0) :|: i823:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (35) IRSFormatTransformerProof (EQUIVALENT) 15.89/10.04 Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (36) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(i696:0, i823:0) -> f2903_0_main_LE(arith, arith1) :|: i823:0 > 0 && arith = i696:0 - 1 && arith1 = i823:0 + i696:0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (37) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(i696:0, i823:0) -> f2903_0_main_LE(arith, arith1) :|: i823:0 > 0 && arith = i696:0 - 1 && arith1 = i823:0 + i696:0 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (38) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(i696:0, i823:0) -> f2903_0_main_LE(arith, arith1) :|: i823:0 > 0 && arith = i696:0 - 1 && arith1 = i823:0 + i696:0 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (39) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (40) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(i696:0:0, i823:0:0) -> f2903_0_main_LE(i696:0:0 - 1, i823:0:0 + i696:0:0) :|: i823:0:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (41) IRSwTChainingProof (EQUIVALENT) 15.89/10.04 Chaining! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (42) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (43) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (44) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -2, x1 + 2 * x + -1) :|: TRUE && x1 >= 1 && x1 + x >= 1 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (45) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (46) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(x:0, x1:0) -> f2903_0_main_LE(x:0 - 2, x1:0 + 2 * x:0 - 1) :|: x1:0 + x:0 >= 1 && x1:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (47) IRSwTChainingProof (EQUIVALENT) 15.89/10.04 Chaining! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (48) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (49) IRSwTTerminationDigraphProof (EQUIVALENT) 15.89/10.04 Constructed termination digraph! 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (50) 15.89/10.04 Obligation: 15.89/10.04 15.89/10.04 Termination digraph: 15.89/10.04 Nodes: 15.89/10.04 (1) f2903_0_main_LE(x, x1) -> f2903_0_main_LE(x + -4, x1 + 4 * x + -6) :|: TRUE && x1 + x >= 1 && x1 >= 1 && x1 + 3 * x >= 4 && x1 + 2 * x >= 2 15.89/10.04 15.89/10.04 Arcs: 15.89/10.04 (1) -> (1) 15.89/10.04 15.89/10.04 This digraph is fully evaluated! 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (51) IntTRSCompressionProof (EQUIVALENT) 15.89/10.04 Compressed rules. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (52) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(x:0, x1:0) -> f2903_0_main_LE(x:0 - 4, x1:0 + 4 * x:0 - 6) :|: x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (53) TempFilterProof (SOUND) 15.89/10.04 Used the following sort dictionary for filtering: 15.89/10.04 f2903_0_main_LE(INTEGER, INTEGER) 15.89/10.04 Replaced non-predefined constructor symbols by 0. 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (54) 15.89/10.04 Obligation: 15.89/10.04 Rules: 15.89/10.04 f2903_0_main_LE(x:0, x1:0) -> f2903_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (55) PolynomialOrderProcessor (EQUIVALENT) 15.89/10.04 Found the following polynomial interpretation: 15.89/10.04 [f2903_0_main_LE(x, x1)] = -2 + 2*x + x^2 + 2*x1 15.89/10.04 15.89/10.04 The following rules are decreasing: 15.89/10.04 f2903_0_main_LE(x:0, x1:0) -> f2903_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 The following rules are bounded: 15.89/10.04 f2903_0_main_LE(x:0, x1:0) -> f2903_0_main_LE(c, c1) :|: c1 = x1:0 + 4 * x:0 - 6 && c = x:0 - 4 && (x1:0 + 3 * x:0 >= 4 && x1:0 + 2 * x:0 >= 2 && x1:0 + x:0 >= 1 && x1:0 > 0) 15.89/10.04 15.89/10.04 ---------------------------------------- 15.89/10.04 15.89/10.04 (56) 15.89/10.04 YES 15.97/10.08 EOF