10.36/4.20 MAYBE 10.36/4.21 proof of /export/starexec/sandbox2/benchmark/theBenchmark.c 10.36/4.21 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 10.36/4.21 10.36/4.21 10.36/4.21 Termination of the given C Problem could not be shown: 10.36/4.21 10.36/4.21 (0) C Problem 10.36/4.21 (1) CToLLVMProof [EQUIVALENT, 169 ms] 10.36/4.21 (2) LLVM problem 10.36/4.21 (3) LLVMToTerminationGraphProof [EQUIVALENT, 384 ms] 10.36/4.21 (4) LLVM Symbolic Execution Graph 10.36/4.21 (5) SymbolicExecutionGraphToLassoProof [EQUIVALENT, 0 ms] 10.36/4.21 (6) LLVM Symbolic Execution Lasso 10.36/4.21 (7) Lasso2IRS [SOUND, 59 ms] 10.36/4.21 (8) IntTRS 10.36/4.21 (9) IRS2T2 [EQUIVALENT, 0 ms] 10.36/4.21 (10) T2IntSys 10.36/4.21 (11) T2 [COMPLETE, 1321 ms] 10.36/4.21 (12) NO 10.36/4.21 (13) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] 10.36/4.21 (14) LLVM Symbolic Execution SCC 10.36/4.21 (15) SCC2IRS [SOUND, 71 ms] 10.36/4.21 (16) IntTRS 10.36/4.21 (17) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.36/4.21 (18) IntTRS 10.36/4.21 (19) IntTRSPeriodicNontermProof [COMPLETE, 11 ms] 10.36/4.21 (20) NO 10.36/4.21 (21) SCC2IRS [SOUND, 0 ms] 10.36/4.21 (22) IntTRS 10.36/4.21 (23) IntTRSCompressionProof [EQUIVALENT, 0 ms] 10.36/4.21 (24) IntTRS 10.36/4.21 (25) IntTRSPeriodicNontermProof [COMPLETE, 15 ms] 10.36/4.21 (26) NO 10.36/4.21 (27) SEGraph to IRS [SOUND, 84 ms] 10.36/4.21 (28) IntTRS 10.36/4.21 (29) IRS2T2 [EQUIVALENT, 0 ms] 10.36/4.21 (30) T2IntSys 10.36/4.21 (31) T2 [COMPLETE, 1354 ms] 10.36/4.21 (32) NO 10.36/4.21 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (0) 10.36/4.21 Obligation: 10.36/4.21 c file /export/starexec/sandbox2/benchmark/theBenchmark.c 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (1) CToLLVMProof (EQUIVALENT) 10.36/4.21 Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (2) 10.36/4.21 Obligation: 10.36/4.21 LLVM Problem 10.36/4.21 10.36/4.21 Aliases: 10.36/4.21 10.36/4.21 Data layout: 10.36/4.21 10.36/4.21 "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" 10.36/4.21 10.36/4.21 Machine: 10.36/4.21 10.36/4.21 "x86_64-pc-linux-gnu" 10.36/4.21 10.36/4.21 Type definitions: 10.36/4.21 10.36/4.21 Global variables: 10.36/4.21 10.36/4.21 Function declarations and definitions: 10.36/4.21 10.36/4.21 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 10.36/4.21 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 10.36/4.21 0: 10.36/4.21 %1 = alloca i32, align 4 10.36/4.21 %a = alloca [1048 x i32], align 16 10.36/4.21 store 0, %1 10.36/4.21 br %2 10.36/4.21 2: 10.36/4.21 %3 = getelementptr %a, 0, 2 10.36/4.21 %4 = load %3 10.36/4.21 %5 = icmp sge %4 0 10.36/4.21 br %5, %6, %13 10.36/4.21 6: 10.36/4.21 %7 = getelementptr %a, 0, 2 10.36/4.21 %8 = load %7 10.36/4.21 %9 = sub %8 1 10.36/4.21 %10 = getelementptr %a, 0, 2 10.36/4.21 store %9, %10 10.36/4.21 %11 = call i32 @__VERIFIER_nondet_int() 10.36/4.21 %12 = getelementptr %a, 0, 2 10.36/4.21 store %11, %12 10.36/4.21 br %2 10.36/4.21 13: 10.36/4.21 ret 0 10.36/4.21 10.36/4.21 10.36/4.21 Analyze Termination of all function calls matching the pattern: 10.36/4.21 main() 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (3) LLVMToTerminationGraphProof (EQUIVALENT) 10.36/4.21 Constructed symbolic execution graph for LLVM program and proved memory safety. 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (4) 10.36/4.21 Obligation: 10.36/4.21 SE Graph 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (5) SymbolicExecutionGraphToLassoProof (EQUIVALENT) 10.36/4.21 Converted SEGraph to 1 independent lasso. 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (6) 10.36/4.21 Obligation: 10.36/4.21 Lasso 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (7) Lasso2IRS (SOUND) 10.36/4.21 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 10.36/4.21 Generated rules. Obtained 33 rulesP rules: 10.36/4.21 f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 <= v10 10.36/4.21 f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v12 = v10 && 0 <= 1 + v12 10.36/4.21 f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_57 -> f_58(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 10.36/4.21 f_58(v1, v2, 3, 1, 4) -> f_59(v1, v3, v2, v4, 3, 4191, 1, 4, 4192) :|: 1 <= v3 && v4 = 4191 + v3 && 4192 <= v4 10.36/4.21 f_59(v1, v3, v2, v4, 3, 4191, 1, 4, 4192) -> f_60(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) :|: TRUE 10.36/4.21 f_60(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) -> f_61(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) :|: TRUE 10.36/4.21 f_61(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) -> f_62(v1, v3, v5, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: v5 = 8 + v3 && 9 <= v5 10.36/4.21 f_62(v1, v3, v5, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_63(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: TRUE 10.36/4.21 f_63(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_64(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: 0 <= v6 10.36/4.21 f_64(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_66(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_66(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_68(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_68(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_70(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_70(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_71(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_71(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_72(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v8 = v6 && 0 <= 1 + v8 10.36/4.21 f_72(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_73(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_73(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_74(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_74(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_75(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_75(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_76(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_76(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_77(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_77(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 Combined rules. Obtained 2 rulesP rules: 10.36/4.21 f_57 -> f_79(v1:0, v3:0, 8 + v3:0, 1 + v8:0, 1, v8:0, v10:0, 3 + v1:0, 4191 + v3:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v3:0 > 0 && v1:0 > 0 && v8:0 > -2 10.36/4.21 f_79(v1:0, v3:0, 8 + v3:0, v6:0, 1, v8:0, 1 + v12:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1:0, v3:0, 8 + v3:0, 1 + v12:0, 1, v12:0, v14:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v12:0 > -2 10.36/4.21 Filtered unneeded arguments: 10.36/4.21 f_79(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) -> f_79(x2, x3, x7) 10.36/4.21 Removed division, modulo operations, cleaned up constraints. Obtained 2 rules.P rules: 10.36/4.21 f_57 -> f_79(v3:0, 8 + v3:0, v10:0) :|: v3:0 > 0 10.36/4.21 f_79(v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0) -> f_79(v3:0, 8 + v3:0, v14:0) :|: v12:0 > -2 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (8) 10.36/4.21 Obligation: 10.36/4.21 Rules: 10.36/4.21 f_57 -> f_79(v3:0, 8 + v3:0, v10:0) :|: v3:0 > 0 10.36/4.21 f_79(x, x1, x2) -> f_79(x, 8 + x, x3) :|: x4 > -2 && x1 = 8 + x && x2 = 1 + x4 10.36/4.21 Start term: f_57 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (9) IRS2T2 (EQUIVALENT) 10.36/4.21 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 10.36/4.21 10.36/4.21 (f_57_3,1) 10.36/4.21 (f_79_3,2) 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (10) 10.36/4.21 Obligation: 10.36/4.21 START: 1; 10.36/4.21 10.36/4.21 FROM: 1; 10.36/4.21 oldX0 := x0; 10.36/4.21 oldX1 := x1; 10.36/4.21 oldX2 := x2; 10.36/4.21 oldX3 := nondet(); 10.36/4.21 oldX4 := nondet(); 10.36/4.21 assume(oldX3 > 0); 10.36/4.21 x0 := oldX3; 10.36/4.21 x1 := 8 + oldX3; 10.36/4.21 x2 := oldX4; 10.36/4.21 TO: 2; 10.36/4.21 10.36/4.21 FROM: 2; 10.36/4.21 oldX0 := x0; 10.36/4.21 oldX1 := x1; 10.36/4.21 oldX2 := x2; 10.36/4.21 oldX4 := oldX2 - 1; 10.36/4.21 oldX3 := nondet(); 10.36/4.21 assume(oldX4 > -2 && oldX1 = 8 + oldX0 && oldX2 = 1 + oldX4); 10.36/4.21 x0 := oldX0; 10.36/4.21 x1 := 8 + oldX0; 10.36/4.21 x2 := oldX3; 10.36/4.21 TO: 2; 10.36/4.21 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (11) T2 (COMPLETE) 10.36/4.21 Found this recurrent set for cutpoint 5: oldX0 == 1 and oldX3 == 1 and oldX4 == 1 and x0 == 1 and x1 == 9 and x2 == 1 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (12) 10.36/4.21 NO 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (13) SymbolicExecutionGraphToSCCProof (SOUND) 10.36/4.21 Splitted symbolic execution graph to 1 SCC. 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (14) 10.36/4.21 Obligation: 10.36/4.21 SCC 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (15) SCC2IRS (SOUND) 10.36/4.21 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 10.36/4.21 Generated rules. Obtained 15 rulesP rules: 10.36/4.21 f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 <= v10 10.36/4.21 f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.21 f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v12 = v10 && 0 <= 1 + v12 10.36/4.21 f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.21 f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.21 Combined rules. Obtained 1 rulesP rules: 10.36/4.21 f_79(v1:0, v3:0, 8 + v3:0, v6:0, 1, v8:0, 1 + v12:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1:0, v3:0, 8 + v3:0, 1 + v12:0, 1, v12:0, v14:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v12:0 > -2 10.36/4.21 Filtered unneeded arguments: 10.36/4.21 f_79(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) -> f_79(x2, x3, x7) 10.36/4.21 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 10.36/4.21 f_79(v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0) -> f_79(v3:0, 8 + v3:0, v14:0) :|: v12:0 > -2 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (16) 10.36/4.21 Obligation: 10.36/4.21 Rules: 10.36/4.21 f_79(v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0) -> f_79(v3:0, 8 + v3:0, v14:0) :|: v12:0 > -2 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (17) IntTRSCompressionProof (EQUIVALENT) 10.36/4.21 Compressed rules. 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (18) 10.36/4.21 Obligation: 10.36/4.21 Rules: 10.36/4.21 f_79(v3:0:0, sum~cons_8~v3:0:0, sum~cons_1~v12:0:0) -> f_79(v3:0:0, 8 + v3:0:0, v14:0:0) :|: v12:0:0 > -2 && sum~cons_8~v3:0:0 = 8 + v3:0:0 && sum~cons_1~v12:0:0 = 1 + v12:0:0 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (19) IntTRSPeriodicNontermProof (COMPLETE) 10.36/4.21 Normalized system to the following form: 10.36/4.21 f(pc, v3:0:0, sum~cons_8~v3:0:0, sum~cons_1~v12:0:0) -> f(1, v3:0:0, 8 + v3:0:0, v14:0:0) :|: pc = 1 && (v12:0:0 > -2 && sum~cons_8~v3:0:0 = 8 + v3:0:0 && sum~cons_1~v12:0:0 = 1 + v12:0:0) 10.36/4.21 Witness term starting non-terminating reduction: f(1, -8, 0, 3) 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (20) 10.36/4.21 NO 10.36/4.21 10.36/4.21 ---------------------------------------- 10.36/4.21 10.36/4.21 (21) SCC2IRS (SOUND) 10.36/4.21 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 10.36/4.21 Generated rules. Obtained 15 rulesP rules: 10.36/4.21 f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 <= v10 10.36/4.22 f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v12 = v10 && 0 <= 1 + v12 10.36/4.22 f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 <= v1 && 4 <= v2 && 1 <= v3 && 4192 <= v4 && 9 <= v5 && 0 <= v10 && 0 <= 1 + v12 && v1 <= v2 && v3 <= v4 10.36/4.22 f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 Combined rules. Obtained 1 rulesP rules: 10.36/4.22 f_79(v1:0, v3:0, 8 + v3:0, v6:0, 1, v8:0, 1 + v12:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1:0, v3:0, 8 + v3:0, 1 + v12:0, 1, v12:0, v14:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v12:0 > -2 && v2:0 > 3 && v1:0 > 0 && v3:0 > 0 && v4:0 > 4191 && v4:0 >= v3:0 && v2:0 >= v1:0 10.36/4.22 Filtered unneeded arguments: 10.36/4.22 f_79(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) -> f_79(x1, x2, x3, x7, x8, x9) 10.36/4.22 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 10.36/4.22 f_79(v1:0, v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0, v2:0, v4:0) -> f_79(v1:0, v3:0, 8 + v3:0, v14:0, v2:0, v4:0) :|: v2:0 > 3 && v12:0 > -2 && v1:0 > 0 && v3:0 > 0 && v4:0 > 4191 && v2:0 >= v1:0 && v4:0 >= v3:0 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (22) 10.36/4.22 Obligation: 10.36/4.22 Rules: 10.36/4.22 f_79(v1:0, v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0, v2:0, v4:0) -> f_79(v1:0, v3:0, 8 + v3:0, v14:0, v2:0, v4:0) :|: v2:0 > 3 && v12:0 > -2 && v1:0 > 0 && v3:0 > 0 && v4:0 > 4191 && v2:0 >= v1:0 && v4:0 >= v3:0 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (23) IntTRSCompressionProof (EQUIVALENT) 10.36/4.22 Compressed rules. 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (24) 10.36/4.22 Obligation: 10.36/4.22 Rules: 10.36/4.22 f_79(v1:0:0, v3:0:0, sum~cons_8~v3:0:0, sum~cons_1~v12:0:0, v2:0:0, v4:0:0) -> f_79(v1:0:0, v3:0:0, 8 + v3:0:0, v14:0:0, v2:0:0, v4:0:0) :|: v2:0:0 >= v1:0:0 && v4:0:0 >= v3:0:0 && v4:0:0 > 4191 && v3:0:0 > 0 && v1:0:0 > 0 && v12:0:0 > -2 && v2:0:0 > 3 && sum~cons_8~v3:0:0 = 8 + v3:0:0 && sum~cons_1~v12:0:0 = 1 + v12:0:0 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (25) IntTRSPeriodicNontermProof (COMPLETE) 10.36/4.22 Normalized system to the following form: 10.36/4.22 f(pc, v1:0:0, v3:0:0, sum~cons_8~v3:0:0, sum~cons_1~v12:0:0, v2:0:0, v4:0:0) -> f(1, v1:0:0, v3:0:0, 8 + v3:0:0, v14:0:0, v2:0:0, v4:0:0) :|: pc = 1 && (v2:0:0 >= v1:0:0 && v4:0:0 >= v3:0:0 && v4:0:0 > 4191 && v3:0:0 > 0 && v1:0:0 > 0 && v12:0:0 > -2 && v2:0:0 > 3 && sum~cons_8~v3:0:0 = 8 + v3:0:0 && sum~cons_1~v12:0:0 = 1 + v12:0:0) 10.36/4.22 Witness term starting non-terminating reduction: f(1, 2048, 2040, 2048, 8191, 6022, 4198) 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (26) 10.36/4.22 NO 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (27) SEGraph to IRS (SOUND) 10.36/4.22 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 10.36/4.22 Generated rules. Obtained 39 rulesP rules: 10.36/4.22 f_57 -> f_58(v1, v2, 3, 1, 4) :|: 1 <= v1 && v2 = 3 + v1 && 4 <= v2 10.36/4.22 f_58(v1, v2, 3, 1, 4) -> f_59(v1, v3, v2, v4, 3, 4191, 1, 4, 4192) :|: 1 <= v3 && v4 = 4191 + v3 && 4192 <= v4 10.36/4.22 f_59(v1, v3, v2, v4, 3, 4191, 1, 4, 4192) -> f_60(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) :|: TRUE 10.36/4.22 f_60(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) -> f_61(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) :|: TRUE 10.36/4.22 f_61(v1, v3, v2, v4, 0, 3, 4191, 1, 4, 4192) -> f_62(v1, v3, v5, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: v5 = 8 + v3 && 9 <= v5 10.36/4.22 f_62(v1, v3, v5, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_63(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: TRUE 10.36/4.22 f_63(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_64(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: 0 <= v6 10.36/4.22 f_63(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_65(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) :|: v6 < 0 10.36/4.22 f_64(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_66(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_65(v1, v3, v5, v6, v2, v4, 0, 3, 4191, 8, 1, 4, 4192, 9) -> f_67(v1, v3, v5, v6, 0, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_66(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_68(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_67(v1, v3, v5, v6, 0, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) -> f_69(v1, v3, v5, v6, 0, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) :|: TRUE 10.36/4.22 f_68(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_70(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_70(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_71(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_71(v1, v3, v5, v6, 1, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_72(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v8 = v6 && 0 <= 1 + v8 10.36/4.22 f_72(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_73(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_73(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_74(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_74(v1, v3, v5, v6, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_75(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_75(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_76(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_76(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_77(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_77(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_78(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_79(v1, v3, v5, v6, 1, v8, v10, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 <= v10 10.36/4.22 f_80(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_82(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v10 < 0 10.36/4.22 f_81(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_82(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_84(v1, v3, v5, v10, 0, v6, v8, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_83(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_84(v1, v3, v5, v10, 0, v6, v8, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) -> f_86(v1, v3, v5, v10, 0, v6, v8, v2, v4, 3, 4191, 8, 1, 4, 4192, 9) :|: TRUE 10.36/4.22 f_85(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_87(v1, v3, v5, v10, 1, v6, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 0 = 0 10.36/4.22 f_88(v1, v3, v5, v10, 1, v8, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: 1 + v12 = v10 && 0 <= 1 + v12 10.36/4.22 f_89(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_90(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_91(v1, v3, v5, v10, 1, v12, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_92(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: v5 = 8 + v3 10.36/4.22 f_93(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_94(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 f_95(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) -> f_78(v1, v3, v5, v10, 1, v12, v14, v2, v4, 0, 3, 4191, 8, 4, 4192, 9) :|: TRUE 10.36/4.22 Combined rules. Obtained 4 rulesP rules: 10.36/4.22 f_57 -> f_80(v1:0, v3:0, 8 + v3:0, v10:0, 1, 1 + v8:0, v8:0, 3 + v1:0, 4191 + v3:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v3:0 > 0 && v1:0 > 0 && v8:0 > -2 10.36/4.22 f_80(v1:0, v3:0, v5:0, v10:0, 1, v6:0, v8:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) -> f_86(v1:0, v3:0, v5:0, v10:0, 0, v6:0, v8:0, v2:0, v4:0, 3, 4191, 8, 1, 4, 4192, 9) :|: v10:0 < 0 10.36/4.22 f_80(v1:0, v3:0, 8 + v3:0, 1 + v12:0, 1, v6:0, v8:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) -> f_80(v1:0, v3:0, 8 + v3:0, v14:0, 1, 1 + v12:0, v12:0, v2:0, v4:0, 0, 3, 4191, 8, 4, 4192, 9) :|: v12:0 > -2 10.36/4.22 f_57 -> f_69(v1:0, v3:0, 8 + v3:0, v6:0, 0, 3 + v1:0, 4191 + v3:0, 3, 4191, 8, 1, 4, 4192, 9) :|: v3:0 > 0 && v1:0 > 0 && v6:0 < 0 10.36/4.22 Filtered unneeded arguments: 10.36/4.22 f_80(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16) -> f_80(x2, x3, x4) 10.36/4.22 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 10.36/4.22 f_57 -> f_80(v3:0, 8 + v3:0, v10:0) :|: v3:0 > 0 10.36/4.22 f_80(v3:0, v5:0, v10:0) -> f_86(v1:0, v3:0, v5:0, v10:0, 0, v6:0, v8:0, v2:0, v4:0, 3, 4191, 8, 1, 4, 4192, 9) :|: v10:0 < 0 10.36/4.22 f_80(v3:0, sum~cons_8~v3:0, sum~cons_1~v12:0) -> f_80(v3:0, 8 + v3:0, v14:0) :|: v12:0 > -2 && sum~cons_8~v3:0 = 8 + v3:0 && sum~cons_1~v12:0 = 1 + v12:0 10.36/4.22 f_57 -> f_69(v1:0, v3:0, 8 + v3:0, v6:0, 0, 3 + v1:0, 4191 + v3:0, 3, 4191, 8, 1, 4, 4192, 9) :|: v1:0 > 0 && v6:0 < 0 && v3:0 > 0 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (28) 10.36/4.22 Obligation: 10.36/4.22 Rules: 10.36/4.22 f_57 -> f_80(v3:0, 8 + v3:0, v10:0) :|: v3:0 > 0 10.36/4.22 f_80(x, x1, x2) -> f_86(x3, x, x1, x2, 0, x4, x5, x6, x7, 3, 4191, 8, 1, 4, 4192, 9) :|: x2 < 0 10.36/4.22 f_80(x8, x9, x10) -> f_80(x8, 8 + x8, x11) :|: x12 > -2 && x9 = 8 + x8 && x10 = 1 + x12 10.36/4.22 f_57 -> f_69(x13, x14, 8 + x14, x15, 0, 3 + x13, 4191 + x14, 3, 4191, 8, 1, 4, 4192, 9) :|: x13 > 0 && x15 < 0 && x14 > 0 10.36/4.22 Start term: f_57 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (29) IRS2T2 (EQUIVALENT) 10.36/4.22 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 10.36/4.22 10.36/4.22 (f_57_16,1) 10.36/4.22 (f_80_16,2) 10.36/4.22 (f_86_16,3) 10.36/4.22 (f_69_16,4) 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (30) 10.36/4.22 Obligation: 10.36/4.22 START: 1; 10.36/4.22 10.36/4.22 FROM: 1; 10.36/4.22 oldX0 := x0; 10.36/4.22 oldX1 := x1; 10.36/4.22 oldX2 := x2; 10.36/4.22 oldX3 := x3; 10.36/4.22 oldX4 := x4; 10.36/4.22 oldX5 := x5; 10.36/4.22 oldX6 := x6; 10.36/4.22 oldX7 := x7; 10.36/4.22 oldX8 := x8; 10.36/4.22 oldX9 := x9; 10.36/4.22 oldX10 := x10; 10.36/4.22 oldX11 := x11; 10.36/4.22 oldX12 := x12; 10.36/4.22 oldX13 := x13; 10.36/4.22 oldX14 := x14; 10.36/4.22 oldX15 := x15; 10.36/4.22 oldX16 := nondet(); 10.36/4.22 oldX17 := nondet(); 10.36/4.22 oldX18 := nondet(); 10.36/4.22 oldX19 := nondet(); 10.36/4.22 oldX20 := nondet(); 10.36/4.22 oldX21 := nondet(); 10.36/4.22 oldX22 := nondet(); 10.36/4.22 oldX23 := nondet(); 10.36/4.22 oldX24 := nondet(); 10.36/4.22 oldX25 := nondet(); 10.36/4.22 oldX26 := nondet(); 10.36/4.22 oldX27 := nondet(); 10.36/4.22 oldX28 := nondet(); 10.36/4.22 oldX29 := nondet(); 10.36/4.22 oldX30 := nondet(); 10.36/4.22 assume(oldX16 > 0); 10.36/4.22 x0 := oldX16; 10.36/4.22 x1 := 8 + oldX16; 10.36/4.22 x2 := oldX17; 10.36/4.22 x3 := oldX18; 10.36/4.22 x4 := oldX19; 10.36/4.22 x5 := oldX20; 10.36/4.22 x6 := oldX21; 10.36/4.22 x7 := oldX22; 10.36/4.22 x8 := oldX23; 10.36/4.22 x9 := oldX24; 10.36/4.22 x10 := oldX25; 10.36/4.22 x11 := oldX26; 10.36/4.22 x12 := oldX27; 10.36/4.22 x13 := oldX28; 10.36/4.22 x14 := oldX29; 10.36/4.22 x15 := oldX30; 10.36/4.22 TO: 2; 10.36/4.22 10.36/4.22 FROM: 2; 10.36/4.22 oldX0 := x0; 10.36/4.22 oldX1 := x1; 10.36/4.22 oldX2 := x2; 10.36/4.22 oldX3 := x3; 10.36/4.22 oldX4 := x4; 10.36/4.22 oldX5 := x5; 10.36/4.22 oldX6 := x6; 10.36/4.22 oldX7 := x7; 10.36/4.22 oldX8 := x8; 10.36/4.22 oldX9 := x9; 10.36/4.22 oldX10 := x10; 10.36/4.22 oldX11 := x11; 10.36/4.22 oldX12 := x12; 10.36/4.22 oldX13 := x13; 10.36/4.22 oldX14 := x14; 10.36/4.22 oldX15 := x15; 10.36/4.22 oldX16 := nondet(); 10.36/4.22 oldX17 := nondet(); 10.36/4.22 oldX18 := nondet(); 10.36/4.22 oldX19 := nondet(); 10.36/4.22 oldX20 := nondet(); 10.36/4.22 assume(oldX2 < 0); 10.36/4.22 x0 := oldX16; 10.36/4.22 x1 := oldX0; 10.36/4.22 x2 := oldX1; 10.36/4.22 x3 := oldX2; 10.36/4.22 x4 := 0; 10.36/4.22 x5 := oldX17; 10.36/4.22 x6 := oldX18; 10.36/4.22 x7 := oldX19; 10.36/4.22 x8 := oldX20; 10.36/4.22 x9 := 3; 10.36/4.22 x10 := 4191; 10.36/4.22 x11 := 8; 10.36/4.22 x12 := 1; 10.36/4.22 x13 := 4; 10.36/4.22 x14 := 4192; 10.36/4.22 x15 := 9; 10.36/4.22 TO: 3; 10.36/4.22 10.36/4.22 FROM: 2; 10.36/4.22 oldX0 := x0; 10.36/4.22 oldX1 := x1; 10.36/4.22 oldX2 := x2; 10.36/4.22 oldX3 := x3; 10.36/4.22 oldX4 := x4; 10.36/4.22 oldX5 := x5; 10.36/4.22 oldX6 := x6; 10.36/4.22 oldX7 := x7; 10.36/4.22 oldX8 := x8; 10.36/4.22 oldX9 := x9; 10.36/4.22 oldX10 := x10; 10.36/4.22 oldX11 := x11; 10.36/4.22 oldX12 := x12; 10.36/4.22 oldX13 := x13; 10.36/4.22 oldX14 := x14; 10.36/4.22 oldX15 := x15; 10.36/4.22 oldX30 := oldX2 - 1; 10.36/4.22 oldX16 := nondet(); 10.36/4.22 oldX17 := nondet(); 10.36/4.22 oldX18 := nondet(); 10.36/4.22 oldX19 := nondet(); 10.36/4.22 oldX20 := nondet(); 10.36/4.22 oldX21 := nondet(); 10.36/4.22 oldX22 := nondet(); 10.36/4.22 oldX23 := nondet(); 10.36/4.22 oldX24 := nondet(); 10.36/4.22 oldX25 := nondet(); 10.36/4.22 oldX26 := nondet(); 10.36/4.22 oldX27 := nondet(); 10.36/4.22 oldX28 := nondet(); 10.36/4.22 oldX29 := nondet(); 10.36/4.22 assume(oldX30 > -2 && oldX1 = 8 + oldX0 && oldX2 = 1 + oldX30); 10.36/4.22 x0 := oldX0; 10.36/4.22 x1 := 8 + oldX0; 10.36/4.22 x2 := oldX16; 10.36/4.22 x3 := oldX17; 10.36/4.22 x4 := oldX18; 10.36/4.22 x5 := oldX19; 10.36/4.22 x6 := oldX20; 10.36/4.22 x7 := oldX21; 10.36/4.22 x8 := oldX22; 10.36/4.22 x9 := oldX23; 10.36/4.22 x10 := oldX24; 10.36/4.22 x11 := oldX25; 10.36/4.22 x12 := oldX26; 10.36/4.22 x13 := oldX27; 10.36/4.22 x14 := oldX28; 10.36/4.22 x15 := oldX29; 10.36/4.22 TO: 2; 10.36/4.22 10.36/4.22 FROM: 1; 10.36/4.22 oldX0 := x0; 10.36/4.22 oldX1 := x1; 10.36/4.22 oldX2 := x2; 10.36/4.22 oldX3 := x3; 10.36/4.22 oldX4 := x4; 10.36/4.22 oldX5 := x5; 10.36/4.22 oldX6 := x6; 10.36/4.22 oldX7 := x7; 10.36/4.22 oldX8 := x8; 10.36/4.22 oldX9 := x9; 10.36/4.22 oldX10 := x10; 10.36/4.22 oldX11 := x11; 10.36/4.22 oldX12 := x12; 10.36/4.22 oldX13 := x13; 10.36/4.22 oldX14 := x14; 10.36/4.22 oldX15 := x15; 10.36/4.22 oldX16 := nondet(); 10.36/4.22 oldX17 := nondet(); 10.36/4.22 oldX18 := nondet(); 10.36/4.22 oldX19 := nondet(); 10.36/4.22 oldX20 := nondet(); 10.36/4.22 assume(oldX16 > 0 && oldX18 < 0 && oldX17 > 0); 10.36/4.22 x0 := oldX16; 10.36/4.22 x1 := oldX17; 10.36/4.22 x2 := 8 + oldX17; 10.36/4.22 x3 := oldX18; 10.36/4.22 x4 := 0; 10.36/4.22 x5 := 3 + oldX16; 10.36/4.22 x6 := 4191 + oldX17; 10.36/4.22 x7 := 3; 10.36/4.22 x8 := 4191; 10.36/4.22 x9 := 8; 10.36/4.22 x10 := 1; 10.36/4.22 x11 := 4; 10.36/4.22 x12 := 4192; 10.36/4.22 x13 := 9; 10.36/4.22 x14 := oldX19; 10.36/4.22 x15 := oldX20; 10.36/4.22 TO: 4; 10.36/4.22 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (31) T2 (COMPLETE) 10.36/4.22 Found this recurrent set for cutpoint 7: oldX0 == 1 and oldX16 == 1 and oldX17 == 1 and x0 == 1 and x1 == 9 and x2 == 1 10.36/4.22 10.36/4.22 ---------------------------------------- 10.36/4.22 10.36/4.22 (32) 10.36/4.22 NO 10.43/4.26 EOF