/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.jar /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.jar # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty termination of the given Bare JBC problem could not be shown: (0) Bare JBC problem (1) BareJBCToJBCProof [EQUIVALENT, 96 ms] (2) JBC problem (3) JBCToGraph [EQUIVALENT, 259 ms] (4) JBCTerminationGraph (5) TerminationGraphToSCCProof [SOUND, 0 ms] (6) JBCTerminationSCC (7) SCCToIRSProof [SOUND, 95 ms] (8) IRSwT (9) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (10) IRSwT (11) IRSwTTerminationDigraphProof [EQUIVALENT, 31 ms] (12) IRSwT (13) IntTRSCompressionProof [EQUIVALENT, 0 ms] (14) IRSwT (15) IRSwTChainingProof [EQUIVALENT, 0 ms] (16) IRSwT (17) IRSwTTerminationDigraphProof [EQUIVALENT, 2 ms] (18) IRSwT (19) IntTRSCompressionProof [EQUIVALENT, 0 ms] (20) IRSwT (21) IRSwTChainingProof [EQUIVALENT, 0 ms] (22) IRSwT (23) IRSwTTerminationDigraphProof [EQUIVALENT, 55 ms] (24) IRSwT (25) IntTRSCompressionProof [EQUIVALENT, 0 ms] (26) IRSwT (27) IRSwTChainingProof [EQUIVALENT, 0 ms] (28) IRSwT (29) IRSwTTerminationDigraphProof [EQUIVALENT, 79 ms] (30) IRSwT (31) IntTRSCompressionProof [EQUIVALENT, 0 ms] (32) IRSwT (33) TempFilterProof [SOUND, 547 ms] (34) IRSwT (35) IRSwTTerminationDigraphProof [EQUIVALENT, 35 ms] (36) IRSwT (37) IntTRSCompressionProof [EQUIVALENT, 0 ms] (38) IRSwT ---------------------------------------- (0) Obligation: need to prove termination of the following program: /** * All lasso-shaped runs of this program are terminating. */ public class MultiLasso { public static void main(String[] args) { int x = args[0].length() - args[1].length(); int y; while (x > 0) { x++; y = x; while (y > 0) { y--; } } } } ---------------------------------------- (1) BareJBCToJBCProof (EQUIVALENT) initialized classpath ---------------------------------------- (2) Obligation: need to prove termination of the following program: /** * All lasso-shaped runs of this program are terminating. */ public class MultiLasso { public static void main(String[] args) { int x = args[0].length() - args[1].length(); int y; while (x > 0) { x++; y = x; while (y > 0) { y--; } } } } ---------------------------------------- (3) JBCToGraph (EQUIVALENT) Constructed TerminationGraph. ---------------------------------------- (4) Obligation: Termination Graph based on JBC Program: MultiLasso.main([Ljava/lang/String;)V: Graph of 134 nodes with 1 SCC. ---------------------------------------- (5) TerminationGraphToSCCProof (SOUND) Splitted TerminationGraph to 1 SCCs. ---------------------------------------- (6) Obligation: SCC of termination graph based on JBC Program. SCC contains nodes from the following methods: MultiLasso.main([Ljava/lang/String;)V SCC calls the following helper methods: Performed SCC analyses: *Used field analysis yielded the following read fields: *Marker field analysis yielded the following relations that could be markers: ---------------------------------------- (7) SCCToIRSProof (SOUND) Transformed FIGraph SCCs to intTRSs. Log: Generated rules. Obtained 17 IRulesP rules: f178_0_main_LE(EOS(STATIC_178), i39, i39) -> f191_0_main_LE(EOS(STATIC_191), i39, i39) :|: TRUE f191_0_main_LE(EOS(STATIC_191), i39, i39) -> f198_0_main_Inc(EOS(STATIC_198), i39) :|: i39 > 0 f198_0_main_Inc(EOS(STATIC_198), i39) -> f244_0_main_Load(EOS(STATIC_244), i39 + 1) :|: TRUE f244_0_main_Load(EOS(STATIC_244), i46) -> f258_0_main_Store(EOS(STATIC_258), i46, i46) :|: TRUE f258_0_main_Store(EOS(STATIC_258), i46, i46) -> f269_0_main_Load(EOS(STATIC_269), i46, i46) :|: TRUE f269_0_main_Load(EOS(STATIC_269), i46, i46) -> f896_0_main_Load(EOS(STATIC_896), i46, i46) :|: TRUE f896_0_main_Load(EOS(STATIC_896), i46, i82) -> f1099_0_main_Load(EOS(STATIC_1099), i46, i82) :|: TRUE f1099_0_main_Load(EOS(STATIC_1099), i46, i218) -> f1112_0_main_LE(EOS(STATIC_1112), i46, i218, i218) :|: TRUE f1112_0_main_LE(EOS(STATIC_1112), i46, matching1, matching2) -> f1120_0_main_LE(EOS(STATIC_1120), i46, 0, 0) :|: TRUE && matching1 = 0 && matching2 = 0 f1112_0_main_LE(EOS(STATIC_1112), i46, i264, i264) -> f1122_0_main_LE(EOS(STATIC_1122), i46, i264, i264) :|: TRUE f1120_0_main_LE(EOS(STATIC_1120), i46, matching1, matching2) -> f1165_0_main_Load(EOS(STATIC_1165), i46) :|: 0 <= 0 && matching1 = 0 && matching2 = 0 f1165_0_main_Load(EOS(STATIC_1165), i46) -> f165_0_main_Load(EOS(STATIC_165), i46) :|: TRUE f165_0_main_Load(EOS(STATIC_165), i34) -> f178_0_main_LE(EOS(STATIC_178), i34, i34) :|: TRUE f1122_0_main_LE(EOS(STATIC_1122), i46, i264, i264) -> f1169_0_main_Inc(EOS(STATIC_1169), i46, i264) :|: i264 > 0 f1169_0_main_Inc(EOS(STATIC_1169), i46, i264) -> f1172_0_main_JMP(EOS(STATIC_1172), i46, i264 + -1) :|: TRUE f1172_0_main_JMP(EOS(STATIC_1172), i46, i274) -> f1207_0_main_Load(EOS(STATIC_1207), i46, i274) :|: TRUE f1207_0_main_Load(EOS(STATIC_1207), i46, i274) -> f1099_0_main_Load(EOS(STATIC_1099), i46, i274) :|: TRUE Combined rules. Obtained 2 IRulesP rules: f1112_0_main_LE(EOS(STATIC_1112), i46:0, i264:0, i264:0) -> f1112_0_main_LE(EOS(STATIC_1112), i46:0, i264:0 - 1, i264:0 - 1) :|: i264:0 > 0 f1112_0_main_LE(EOS(STATIC_1112), i46:0, 0, 0) -> f1112_0_main_LE(EOS(STATIC_1112), i46:0 + 1, i46:0 + 1, i46:0 + 1) :|: i46:0 > 0 Filtered constant ground arguments: f1112_0_main_LE(x1, x2, x3, x4) -> f1112_0_main_LE(x2, x3, x4) EOS(x1) -> EOS Filtered duplicate arguments: f1112_0_main_LE(x1, x2, x3) -> f1112_0_main_LE(x1, x3) Finished conversion. Obtained 2 rules.P rules: f1112_0_main_LE(i46:0, i264:0) -> f1112_0_main_LE(i46:0, i264:0 - 1) :|: i264:0 > 0 f1112_0_main_LE(i46:0, cons_0) -> f1112_0_main_LE(i46:0 + 1, i46:0 + 1) :|: i46:0 > 0 && cons_0 = 0 ---------------------------------------- (8) Obligation: Rules: f1112_0_main_LE(i46:0, i264:0) -> f1112_0_main_LE(i46:0, i264:0 - 1) :|: i264:0 > 0 f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x + 1, x + 1) :|: x > 0 && x1 = 0 ---------------------------------------- (9) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (10) Obligation: Rules: f1112_0_main_LE(i46:0, i264:0) -> f1112_0_main_LE(i46:0, arith) :|: i264:0 > 0 && arith = i264:0 - 1 f1112_0_main_LE(x2, x3) -> f1112_0_main_LE(x4, x4) :|: x2 > 0 && x3 = 0 && x4 = x2 + 1 && x4 = x2 + 1 ---------------------------------------- (11) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1112_0_main_LE(i46:0, i264:0) -> f1112_0_main_LE(i46:0, arith) :|: i264:0 > 0 && arith = i264:0 - 1 (2) f1112_0_main_LE(x2, x3) -> f1112_0_main_LE(x4, x4) :|: x2 > 0 && x3 = 0 && x4 = x2 + 1 && x4 = x2 + 1 Arcs: (1) -> (1), (2) (2) -> (1) This digraph is fully evaluated! ---------------------------------------- (12) Obligation: Termination digraph: Nodes: (1) f1112_0_main_LE(i46:0, i264:0) -> f1112_0_main_LE(i46:0, arith) :|: i264:0 > 0 && arith = i264:0 - 1 (2) f1112_0_main_LE(x2, x3) -> f1112_0_main_LE(x4, x4) :|: x2 > 0 && x3 = 0 && x4 = x2 + 1 && x4 = x2 + 1 Arcs: (1) -> (1), (2) (2) -> (1) This digraph is fully evaluated! ---------------------------------------- (13) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (14) Obligation: Rules: f1112_0_main_LE(i46:0:0, i264:0:0) -> f1112_0_main_LE(i46:0:0, i264:0:0 - 1) :|: i264:0:0 > 0 f1112_0_main_LE(x2:0, cons_0) -> f1112_0_main_LE(x2:0 + 1, x2:0 + 1) :|: x2:0 > 0 && cons_0 = 0 ---------------------------------------- (15) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (16) Obligation: Rules: f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -2) :|: TRUE && x1 >= 2 f1112_0_main_LE(x2:0, cons_0) -> f1112_0_main_LE(x2:0 + 1, x2:0 + 1) :|: x2:0 > 0 && cons_0 = 0 f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 1 ---------------------------------------- (17) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -2) :|: TRUE && x1 >= 2 (2) f1112_0_main_LE(x2:0, cons_0) -> f1112_0_main_LE(x2:0 + 1, x2:0 + 1) :|: x2:0 > 0 && cons_0 = 0 (3) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 1 Arcs: (1) -> (1), (2), (3) (2) -> (1) (3) -> (1) This digraph is fully evaluated! ---------------------------------------- (18) Obligation: Termination digraph: Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -2) :|: TRUE && x1 >= 2 (2) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 1 (3) f1112_0_main_LE(x2:0, cons_0) -> f1112_0_main_LE(x2:0 + 1, x2:0 + 1) :|: x2:0 > 0 && cons_0 = 0 Arcs: (1) -> (1), (2), (3) (2) -> (1) (3) -> (1) This digraph is fully evaluated! ---------------------------------------- (19) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (20) Obligation: Rules: f1112_0_main_LE(x:0, x1:0) -> f1112_0_main_LE(x:0, x1:0 - 2) :|: x1:0 > 1 f1112_0_main_LE(x4:0, cons_1) -> f1112_0_main_LE(x4:0 + 1, x4:0 + 1) :|: x4:0 > 0 && cons_1 = 1 f1112_0_main_LE(x2:0:0, cons_0) -> f1112_0_main_LE(x2:0:0 + 1, x2:0:0 + 1) :|: x2:0:0 > 0 && cons_0 = 0 ---------------------------------------- (21) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (22) Obligation: Rules: f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -4) :|: TRUE && x1 >= 4 f1112_0_main_LE(x4:0, cons_1) -> f1112_0_main_LE(x4:0 + 1, x4:0 + 1) :|: x4:0 > 0 && cons_1 = 1 f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 3 f1112_0_main_LE(x2:0:0, cons_0) -> f1112_0_main_LE(x2:0:0 + 1, x2:0:0 + 1) :|: x2:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x8, x9) -> f1112_0_main_LE(x8 + 1, x8 + 1) :|: TRUE && x8 >= 1 && x9 = 2 ---------------------------------------- (23) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -4) :|: TRUE && x1 >= 4 (2) f1112_0_main_LE(x4:0, cons_1) -> f1112_0_main_LE(x4:0 + 1, x4:0 + 1) :|: x4:0 > 0 && cons_1 = 1 (3) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 3 (4) f1112_0_main_LE(x2:0:0, cons_0) -> f1112_0_main_LE(x2:0:0 + 1, x2:0:0 + 1) :|: x2:0:0 > 0 && cons_0 = 0 (5) f1112_0_main_LE(x8, x9) -> f1112_0_main_LE(x8 + 1, x8 + 1) :|: TRUE && x8 >= 1 && x9 = 2 Arcs: (1) -> (1), (2), (3), (4), (5) (2) -> (1), (3), (5) (3) -> (1), (3), (5) (4) -> (1), (3), (5) (5) -> (1), (3), (5) This digraph is fully evaluated! ---------------------------------------- (24) Obligation: Termination digraph: Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x, x1 + -4) :|: TRUE && x1 >= 4 (2) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 1, x4 + 1) :|: TRUE && x4 >= 1 && x5 = 3 (3) f1112_0_main_LE(x8, x9) -> f1112_0_main_LE(x8 + 1, x8 + 1) :|: TRUE && x8 >= 1 && x9 = 2 (4) f1112_0_main_LE(x2:0:0, cons_0) -> f1112_0_main_LE(x2:0:0 + 1, x2:0:0 + 1) :|: x2:0:0 > 0 && cons_0 = 0 (5) f1112_0_main_LE(x4:0, cons_1) -> f1112_0_main_LE(x4:0 + 1, x4:0 + 1) :|: x4:0 > 0 && cons_1 = 1 Arcs: (1) -> (1), (2), (3), (4), (5) (2) -> (1), (2), (3) (3) -> (1), (2), (3) (4) -> (1), (2), (3) (5) -> (1), (2), (3) This digraph is fully evaluated! ---------------------------------------- (25) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (26) Obligation: Rules: f1112_0_main_LE(x4:0, cons_3) -> f1112_0_main_LE(x4:0 + 1, x4:0 + 1) :|: x4:0 > 0 && cons_3 = 3 f1112_0_main_LE(x8:0, cons_2) -> f1112_0_main_LE(x8:0 + 1, x8:0 + 1) :|: x8:0 > 0 && cons_2 = 2 f1112_0_main_LE(x2:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0 + 1, x2:0:0:0 + 1) :|: x2:0:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x4:0:0, cons_1) -> f1112_0_main_LE(x4:0:0 + 1, x4:0:0 + 1) :|: x4:0:0 > 0 && cons_1 = 1 f1112_0_main_LE(x:0, x1:0) -> f1112_0_main_LE(x:0, x1:0 - 4) :|: x1:0 > 3 ---------------------------------------- (27) IRSwTChainingProof (EQUIVALENT) Chaining! ---------------------------------------- (28) Obligation: Rules: f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x + 2, x + 2) :|: TRUE && x1 = 3 && x = 2 f1112_0_main_LE(x8:0, cons_2) -> f1112_0_main_LE(x8:0 + 1, x8:0 + 1) :|: x8:0 > 0 && cons_2 = 2 f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 2, x4 + 2) :|: TRUE && x5 = 3 && x4 = 1 f1112_0_main_LE(x2:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0 + 1, x2:0:0:0 + 1) :|: x2:0:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x4:0:0, cons_1) -> f1112_0_main_LE(x4:0:0 + 1, x4:0:0 + 1) :|: x4:0:0 > 0 && cons_1 = 1 f1112_0_main_LE(x:0, x1:0) -> f1112_0_main_LE(x:0, x1:0 - 4) :|: x1:0 > 3 f1112_0_main_LE(x16, x17) -> f1112_0_main_LE(x16 + 1, x16 + -3) :|: TRUE && x17 = 3 && x16 >= 3 ---------------------------------------- (29) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x + 2, x + 2) :|: TRUE && x1 = 3 && x = 2 (2) f1112_0_main_LE(x8:0, cons_2) -> f1112_0_main_LE(x8:0 + 1, x8:0 + 1) :|: x8:0 > 0 && cons_2 = 2 (3) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 2, x4 + 2) :|: TRUE && x5 = 3 && x4 = 1 (4) f1112_0_main_LE(x2:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0 + 1, x2:0:0:0 + 1) :|: x2:0:0:0 > 0 && cons_0 = 0 (5) f1112_0_main_LE(x4:0:0, cons_1) -> f1112_0_main_LE(x4:0:0 + 1, x4:0:0 + 1) :|: x4:0:0 > 0 && cons_1 = 1 (6) f1112_0_main_LE(x:0, x1:0) -> f1112_0_main_LE(x:0, x1:0 - 4) :|: x1:0 > 3 (7) f1112_0_main_LE(x16, x17) -> f1112_0_main_LE(x16 + 1, x16 + -3) :|: TRUE && x17 = 3 && x16 >= 3 Arcs: (1) -> (6) (2) -> (2), (6), (7) (3) -> (7) (4) -> (2), (6), (7) (5) -> (2), (6), (7) (6) -> (1), (2), (3), (4), (5), (6), (7) (7) -> (2), (4), (5), (6), (7) This digraph is fully evaluated! ---------------------------------------- (30) Obligation: Termination digraph: Nodes: (1) f1112_0_main_LE(x, x1) -> f1112_0_main_LE(x + 2, x + 2) :|: TRUE && x1 = 3 && x = 2 (2) f1112_0_main_LE(x:0, x1:0) -> f1112_0_main_LE(x:0, x1:0 - 4) :|: x1:0 > 3 (3) f1112_0_main_LE(x8:0, cons_2) -> f1112_0_main_LE(x8:0 + 1, x8:0 + 1) :|: x8:0 > 0 && cons_2 = 2 (4) f1112_0_main_LE(x2:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0 + 1, x2:0:0:0 + 1) :|: x2:0:0:0 > 0 && cons_0 = 0 (5) f1112_0_main_LE(x16, x17) -> f1112_0_main_LE(x16 + 1, x16 + -3) :|: TRUE && x17 = 3 && x16 >= 3 (6) f1112_0_main_LE(x4:0:0, cons_1) -> f1112_0_main_LE(x4:0:0 + 1, x4:0:0 + 1) :|: x4:0:0 > 0 && cons_1 = 1 (7) f1112_0_main_LE(x4, x5) -> f1112_0_main_LE(x4 + 2, x4 + 2) :|: TRUE && x5 = 3 && x4 = 1 Arcs: (1) -> (2) (2) -> (1), (2), (3), (4), (5), (6), (7) (3) -> (2), (3), (5) (4) -> (2), (3), (5) (5) -> (2), (3), (4), (5), (6) (6) -> (2), (3), (5) (7) -> (5) This digraph is fully evaluated! ---------------------------------------- (31) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (32) Obligation: Rules: f1112_0_main_LE(x8:0:0, cons_2) -> f1112_0_main_LE(x8:0:0 + 1, x8:0:0 + 1) :|: x8:0:0 > 0 && cons_2 = 2 f1112_0_main_LE(x2:0:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0:0 + 1, x2:0:0:0:0 + 1) :|: x2:0:0:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x4:0:0:0, cons_1) -> f1112_0_main_LE(x4:0:0:0 + 1, x4:0:0:0 + 1) :|: x4:0:0:0 > 0 && cons_1 = 1 f1112_0_main_LE(x, x1) -> f1112_0_main_LE(3, 3) :|: TRUE && x = 1 && x1 = 3 f1112_0_main_LE(x2, x3) -> f1112_0_main_LE(4, 4) :|: TRUE && x2 = 2 && x3 = 3 f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, x1:0:0 - 4) :|: x1:0:0 > 3 f1112_0_main_LE(x16:0, cons_3) -> f1112_0_main_LE(x16:0 + 1, x16:0 - 3) :|: x16:0 > 2 && cons_3 = 3 ---------------------------------------- (33) TempFilterProof (SOUND) Used the following sort dictionary for filtering: f1112_0_main_LE(VARIABLE, VARIABLE) Replaced non-predefined constructor symbols by 0.The following proof was generated: # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given IntTRS could not be shown: - IntTRS - PolynomialOrderProcessor Rules: f1112_0_main_LE(x8:0:0, c) -> f1112_0_main_LE(c1, c2) :|: c2 = x8:0:0 + 1 && (c1 = x8:0:0 + 1 && c = 2) && (x8:0:0 > 0 && cons_2 = 2) f1112_0_main_LE(x2:0:0:0:0, c3) -> f1112_0_main_LE(c4, c5) :|: c5 = x2:0:0:0:0 + 1 && (c4 = x2:0:0:0:0 + 1 && c3 = 0) && (x2:0:0:0:0 > 0 && cons_0 = 0) f1112_0_main_LE(x4:0:0:0, c6) -> f1112_0_main_LE(c7, c8) :|: c8 = x4:0:0:0 + 1 && (c7 = x4:0:0:0 + 1 && c6 = 1) && (x4:0:0:0 > 0 && cons_1 = 1) f1112_0_main_LE(c9, c10) -> f1112_0_main_LE(c11, c12) :|: c12 = 3 && (c11 = 3 && (c10 = 3 && c9 = 1)) && (TRUE && x = 1 && x1 = 3) f1112_0_main_LE(c13, c14) -> f1112_0_main_LE(c15, c16) :|: c16 = 4 && (c15 = 4 && (c14 = 3 && c13 = 2)) && (TRUE && x2 = 2 && x3 = 3) f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, c17) :|: c17 = x1:0:0 - 4 && x1:0:0 > 3 f1112_0_main_LE(x16:0, c18) -> f1112_0_main_LE(c19, c20) :|: c20 = x16:0 - 3 && (c19 = x16:0 + 1 && c18 = 3) && (x16:0 > 2 && cons_3 = 3) Found the following polynomial interpretation: [f1112_0_main_LE(x, x1)] = 1 - x The following rules are decreasing: f1112_0_main_LE(x8:0:0, c) -> f1112_0_main_LE(c1, c2) :|: c2 = x8:0:0 + 1 && (c1 = x8:0:0 + 1 && c = 2) && (x8:0:0 > 0 && cons_2 = 2) f1112_0_main_LE(x2:0:0:0:0, c3) -> f1112_0_main_LE(c4, c5) :|: c5 = x2:0:0:0:0 + 1 && (c4 = x2:0:0:0:0 + 1 && c3 = 0) && (x2:0:0:0:0 > 0 && cons_0 = 0) f1112_0_main_LE(x4:0:0:0, c6) -> f1112_0_main_LE(c7, c8) :|: c8 = x4:0:0:0 + 1 && (c7 = x4:0:0:0 + 1 && c6 = 1) && (x4:0:0:0 > 0 && cons_1 = 1) f1112_0_main_LE(c9, c10) -> f1112_0_main_LE(c11, c12) :|: c12 = 3 && (c11 = 3 && (c10 = 3 && c9 = 1)) && (TRUE && x = 1 && x1 = 3) f1112_0_main_LE(c13, c14) -> f1112_0_main_LE(c15, c16) :|: c16 = 4 && (c15 = 4 && (c14 = 3 && c13 = 2)) && (TRUE && x2 = 2 && x3 = 3) f1112_0_main_LE(x16:0, c18) -> f1112_0_main_LE(c19, c20) :|: c20 = x16:0 - 3 && (c19 = x16:0 + 1 && c18 = 3) && (x16:0 > 2 && cons_3 = 3) The following rules are bounded: f1112_0_main_LE(c9, c10) -> f1112_0_main_LE(c11, c12) :|: c12 = 3 && (c11 = 3 && (c10 = 3 && c9 = 1)) && (TRUE && x = 1 && x1 = 3) - IntTRS - PolynomialOrderProcessor - IntTRS - PolynomialOrderProcessor Rules: f1112_0_main_LE(x8:0:0, c) -> f1112_0_main_LE(c1, c2) :|: c2 = x8:0:0 + 1 && (c1 = x8:0:0 + 1 && c = 2) && (x8:0:0 > 0 && cons_2 = 2) f1112_0_main_LE(x2:0:0:0:0, c3) -> f1112_0_main_LE(c4, c5) :|: c5 = x2:0:0:0:0 + 1 && (c4 = x2:0:0:0:0 + 1 && c3 = 0) && (x2:0:0:0:0 > 0 && cons_0 = 0) f1112_0_main_LE(x4:0:0:0, c6) -> f1112_0_main_LE(c7, c8) :|: c8 = x4:0:0:0 + 1 && (c7 = x4:0:0:0 + 1 && c6 = 1) && (x4:0:0:0 > 0 && cons_1 = 1) f1112_0_main_LE(c13, c14) -> f1112_0_main_LE(c15, c16) :|: c16 = 4 && (c15 = 4 && (c14 = 3 && c13 = 2)) && (TRUE && x2 = 2 && x3 = 3) f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, c17) :|: c17 = x1:0:0 - 4 && x1:0:0 > 3 f1112_0_main_LE(x16:0, c18) -> f1112_0_main_LE(c19, c20) :|: c20 = x16:0 - 3 && (c19 = x16:0 + 1 && c18 = 3) && (x16:0 > 2 && cons_3 = 3) Found the following polynomial interpretation: [f1112_0_main_LE(x, x1)] = 2 - x The following rules are decreasing: f1112_0_main_LE(x8:0:0, c) -> f1112_0_main_LE(c1, c2) :|: c2 = x8:0:0 + 1 && (c1 = x8:0:0 + 1 && c = 2) && (x8:0:0 > 0 && cons_2 = 2) f1112_0_main_LE(x2:0:0:0:0, c3) -> f1112_0_main_LE(c4, c5) :|: c5 = x2:0:0:0:0 + 1 && (c4 = x2:0:0:0:0 + 1 && c3 = 0) && (x2:0:0:0:0 > 0 && cons_0 = 0) f1112_0_main_LE(x4:0:0:0, c6) -> f1112_0_main_LE(c7, c8) :|: c8 = x4:0:0:0 + 1 && (c7 = x4:0:0:0 + 1 && c6 = 1) && (x4:0:0:0 > 0 && cons_1 = 1) f1112_0_main_LE(c13, c14) -> f1112_0_main_LE(c15, c16) :|: c16 = 4 && (c15 = 4 && (c14 = 3 && c13 = 2)) && (TRUE && x2 = 2 && x3 = 3) f1112_0_main_LE(x16:0, c18) -> f1112_0_main_LE(c19, c20) :|: c20 = x16:0 - 3 && (c19 = x16:0 + 1 && c18 = 3) && (x16:0 > 2 && cons_3 = 3) The following rules are bounded: f1112_0_main_LE(c13, c14) -> f1112_0_main_LE(c15, c16) :|: c16 = 4 && (c15 = 4 && (c14 = 3 && c13 = 2)) && (TRUE && x2 = 2 && x3 = 3) - IntTRS - PolynomialOrderProcessor - IntTRS - PolynomialOrderProcessor - IntTRS Rules: f1112_0_main_LE(x8:0:0, c) -> f1112_0_main_LE(c1, c2) :|: c2 = x8:0:0 + 1 && (c1 = x8:0:0 + 1 && c = 2) && (x8:0:0 > 0 && cons_2 = 2) f1112_0_main_LE(x2:0:0:0:0, c3) -> f1112_0_main_LE(c4, c5) :|: c5 = x2:0:0:0:0 + 1 && (c4 = x2:0:0:0:0 + 1 && c3 = 0) && (x2:0:0:0:0 > 0 && cons_0 = 0) f1112_0_main_LE(x4:0:0:0, c6) -> f1112_0_main_LE(c7, c8) :|: c8 = x4:0:0:0 + 1 && (c7 = x4:0:0:0 + 1 && c6 = 1) && (x4:0:0:0 > 0 && cons_1 = 1) f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, c17) :|: c17 = x1:0:0 - 4 && x1:0:0 > 3 f1112_0_main_LE(x16:0, c18) -> f1112_0_main_LE(c19, c20) :|: c20 = x16:0 - 3 && (c19 = x16:0 + 1 && c18 = 3) && (x16:0 > 2 && cons_3 = 3) ---------------------------------------- (34) Obligation: Rules: f1112_0_main_LE(x8:0:0, cons_2) -> f1112_0_main_LE(x8:0:0 + 1, x8:0:0 + 1) :|: x8:0:0 > 0 && cons_2 = 2 f1112_0_main_LE(x2:0:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0:0 + 1, x2:0:0:0:0 + 1) :|: x2:0:0:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x4:0:0:0, cons_1) -> f1112_0_main_LE(x4:0:0:0 + 1, x4:0:0:0 + 1) :|: x4:0:0:0 > 0 && cons_1 = 1 f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, x1:0:0 - 4) :|: x1:0:0 > 3 f1112_0_main_LE(x16:0, cons_3) -> f1112_0_main_LE(x16:0 + 1, x16:0 - 3) :|: x16:0 > 2 && cons_3 = 3 ---------------------------------------- (35) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f1112_0_main_LE(x8:0:0, cons_2) -> f1112_0_main_LE(x8:0:0 + 1, x8:0:0 + 1) :|: x8:0:0 > 0 && cons_2 = 2 (2) f1112_0_main_LE(x2:0:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0:0 + 1, x2:0:0:0:0 + 1) :|: x2:0:0:0:0 > 0 && cons_0 = 0 (3) f1112_0_main_LE(x4:0:0:0, cons_1) -> f1112_0_main_LE(x4:0:0:0 + 1, x4:0:0:0 + 1) :|: x4:0:0:0 > 0 && cons_1 = 1 (4) f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, x1:0:0 - 4) :|: x1:0:0 > 3 (5) f1112_0_main_LE(x16:0, cons_3) -> f1112_0_main_LE(x16:0 + 1, x16:0 - 3) :|: x16:0 > 2 && cons_3 = 3 Arcs: (1) -> (1), (4), (5) (2) -> (1), (4), (5) (3) -> (1), (4), (5) (4) -> (1), (2), (3), (4), (5) (5) -> (1), (2), (3), (4), (5) This digraph is fully evaluated! ---------------------------------------- (36) Obligation: Termination digraph: Nodes: (1) f1112_0_main_LE(x8:0:0, cons_2) -> f1112_0_main_LE(x8:0:0 + 1, x8:0:0 + 1) :|: x8:0:0 > 0 && cons_2 = 2 (2) f1112_0_main_LE(x2:0:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0:0 + 1, x2:0:0:0:0 + 1) :|: x2:0:0:0:0 > 0 && cons_0 = 0 (3) f1112_0_main_LE(x:0:0, x1:0:0) -> f1112_0_main_LE(x:0:0, x1:0:0 - 4) :|: x1:0:0 > 3 (4) f1112_0_main_LE(x4:0:0:0, cons_1) -> f1112_0_main_LE(x4:0:0:0 + 1, x4:0:0:0 + 1) :|: x4:0:0:0 > 0 && cons_1 = 1 (5) f1112_0_main_LE(x16:0, cons_3) -> f1112_0_main_LE(x16:0 + 1, x16:0 - 3) :|: x16:0 > 2 && cons_3 = 3 Arcs: (1) -> (1), (3), (5) (2) -> (1), (3), (5) (3) -> (1), (2), (3), (4), (5) (4) -> (1), (3), (5) (5) -> (1), (2), (3), (4), (5) This digraph is fully evaluated! ---------------------------------------- (37) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (38) Obligation: Rules: f1112_0_main_LE(x8:0:0:0, cons_2) -> f1112_0_main_LE(x8:0:0:0 + 1, x8:0:0:0 + 1) :|: x8:0:0:0 > 0 && cons_2 = 2 f1112_0_main_LE(x2:0:0:0:0:0, cons_0) -> f1112_0_main_LE(x2:0:0:0:0:0 + 1, x2:0:0:0:0:0 + 1) :|: x2:0:0:0:0:0 > 0 && cons_0 = 0 f1112_0_main_LE(x16:0:0, cons_3) -> f1112_0_main_LE(x16:0:0 + 1, x16:0:0 - 3) :|: x16:0:0 > 2 && cons_3 = 3 f1112_0_main_LE(x4:0:0:0:0, cons_1) -> f1112_0_main_LE(x4:0:0:0:0 + 1, x4:0:0:0:0 + 1) :|: x4:0:0:0:0 > 0 && cons_1 = 1 f1112_0_main_LE(x:0:0:0, x1:0:0:0) -> f1112_0_main_LE(x:0:0:0, x1:0:0:0 - 4) :|: x1:0:0:0 > 3