47.78/15.06 YES 47.78/15.09 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 47.78/15.09 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 47.78/15.09 47.78/15.09 47.78/15.09 Termination of the given C Problem could be proven: 47.78/15.09 47.78/15.09 (0) C Problem 47.78/15.09 (1) CToLLVMProof [EQUIVALENT, 172 ms] 47.78/15.09 (2) LLVM problem 47.78/15.09 (3) LLVMToTerminationGraphProof [EQUIVALENT, 9367 ms] 47.78/15.09 (4) LLVM Symbolic Execution Graph 47.78/15.09 (5) SymbolicExecutionGraphToSCCProof [SOUND, 4 ms] 47.78/15.09 (6) AND 47.78/15.09 (7) LLVM Symbolic Execution SCC 47.78/15.09 (8) SCC2IRS [SOUND, 167 ms] 47.78/15.09 (9) IntTRS 47.78/15.09 (10) IRS2T2 [EQUIVALENT, 0 ms] 47.78/15.09 (11) T2IntSys 47.78/15.09 (12) T2 [EQUIVALENT, 1272 ms] 47.78/15.09 (13) YES 47.78/15.09 (14) LLVM Symbolic Execution SCC 47.78/15.09 (15) SCC2IRS [SOUND, 70 ms] 47.78/15.09 (16) IntTRS 47.78/15.09 (17) IRS2T2 [EQUIVALENT, 0 ms] 47.78/15.09 (18) T2IntSys 47.78/15.09 (19) T2 [EQUIVALENT, 892 ms] 47.78/15.09 (20) YES 47.78/15.09 (21) LLVM Symbolic Execution SCC 47.78/15.09 (22) SCC2IRS [SOUND, 88 ms] 47.78/15.09 (23) IntTRS 47.78/15.09 (24) TerminationGraphProcessor [EQUIVALENT, 27 ms] 47.78/15.09 (25) YES 47.78/15.09 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (0) 47.78/15.09 Obligation: 47.78/15.09 c file /export/starexec/sandbox/benchmark/theBenchmark.c 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (1) CToLLVMProof (EQUIVALENT) 47.78/15.09 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (2) 47.78/15.09 Obligation: 47.78/15.09 LLVM Problem 47.78/15.09 47.78/15.09 Aliases: 47.78/15.09 47.78/15.09 Data layout: 47.78/15.09 47.78/15.09 "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" 47.78/15.09 47.78/15.09 Machine: 47.78/15.09 47.78/15.09 "x86_64-pc-linux-gnu" 47.78/15.09 47.78/15.09 Type definitions: 47.78/15.09 47.78/15.09 Global variables: 47.78/15.09 47.78/15.09 Function declarations and definitions: 47.78/15.09 47.78/15.09 *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 47.78/15.09 *BasicFunctionTypename: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (x i32, y i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 47.78/15.09 0: 47.78/15.09 %1 = alloca i32, align 4 47.78/15.09 %2 = alloca i32, align 4 47.78/15.09 %x_ref = alloca *i32, align 8 47.78/15.09 %y_ref = alloca *i32, align 8 47.78/15.09 %c = alloca *i32, align 8 47.78/15.09 store %x, %1 47.78/15.09 store %y, %2 47.78/15.09 %3 = alloca i8, numElementsLit: 4 47.78/15.09 %4 = bitcast *i8 %3 to *i32 47.78/15.09 store %4, %x_ref 47.78/15.09 %5 = alloca i8, numElementsLit: 4 47.78/15.09 %6 = bitcast *i8 %5 to *i32 47.78/15.09 store %6, %y_ref 47.78/15.09 %7 = alloca i8, numElementsLit: 4 47.78/15.09 %8 = bitcast *i8 %7 to *i32 47.78/15.09 store %8, %c 47.78/15.09 %9 = load %1 47.78/15.09 %10 = load %x_ref 47.78/15.09 store %9, %10 47.78/15.09 %11 = load %2 47.78/15.09 %12 = load %y_ref 47.78/15.09 store %11, %12 47.78/15.09 %13 = load %c 47.78/15.09 store 0, %13 47.78/15.09 br %14 47.78/15.09 14: 47.78/15.09 %15 = load %x_ref 47.78/15.09 %16 = load %15 47.78/15.09 %17 = icmp sge %16 0 47.78/15.09 br %17, %18, %40 47.78/15.09 18: 47.78/15.09 %19 = load %y_ref 47.78/15.09 store 1, %19 47.78/15.09 br %20 47.78/15.09 20: 47.78/15.09 %21 = load %x_ref 47.78/15.09 %22 = load %21 47.78/15.09 %23 = load %y_ref 47.78/15.09 %24 = load %23 47.78/15.09 %25 = icmp sgt %22 %24 47.78/15.09 br %25, %26, %35 47.78/15.09 26: 47.78/15.09 %27 = load %y_ref 47.78/15.09 %28 = load %27 47.78/15.09 %29 = mul 2 %28 47.78/15.09 %30 = load %y_ref 47.78/15.09 store %29, %30 47.78/15.09 %31 = load %c 47.78/15.09 %32 = load %31 47.78/15.09 %33 = add %32 1 47.78/15.09 %34 = load %c 47.78/15.09 store %33, %34 47.78/15.09 br %20 47.78/15.09 35: 47.78/15.09 %36 = load %x_ref 47.78/15.09 %37 = load %36 47.78/15.09 %38 = sub %37 1 47.78/15.09 %39 = load %x_ref 47.78/15.09 store %38, %39 47.78/15.09 br %14 47.78/15.09 40: 47.78/15.09 %41 = load %c 47.78/15.09 %42 = load %41 47.78/15.09 ret %42 47.78/15.09 47.78/15.09 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 47.78/15.09 0: 47.78/15.09 %1 = alloca i32, align 4 47.78/15.09 store 0, %1 47.78/15.09 %2 = call i32 @__VERIFIER_nondet_int() 47.78/15.09 %3 = call i32 @__VERIFIER_nondet_int() 47.78/15.09 %4 = call i32 @test_fun(i32 %2, i32 %3) 47.78/15.09 ret %4 47.78/15.09 47.78/15.09 47.78/15.09 Analyze Termination of all function calls matching the pattern: 47.78/15.09 main() 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (3) LLVMToTerminationGraphProof (EQUIVALENT) 47.78/15.09 Constructed symbolic execution graph for LLVM program and proved memory safety. 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (4) 47.78/15.09 Obligation: 47.78/15.09 SE Graph 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (5) SymbolicExecutionGraphToSCCProof (SOUND) 47.78/15.09 Splitted symbolic execution graph to 3 SCCs. 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (6) 47.78/15.09 Complex Obligation (AND) 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (7) 47.78/15.09 Obligation: 47.78/15.09 SCC 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (8) SCC2IRS (SOUND) 47.78/15.09 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 47.78/15.09 Generated rules. Obtained 50 rulesP rules: 47.78/15.09 f_714(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v950, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_715(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_715(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_716(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: v966 = 2 * v949 && 2 <= v966 47.78/15.09 f_716(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_717(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_717(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_718(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_718(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_719(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_719(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_720(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_720(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_721(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: v968 = 1 + v953 && 2 <= v968 47.78/15.09 f_721(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_722(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_722(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_723(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_723(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_724(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_724(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_725(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_725(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_726(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_726(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_727(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_727(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_728(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_728(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_729(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: v966 < v947 && 3 <= v947 && 4 <= v954 && 4 <= v937 47.78/15.09 f_728(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_730(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: v947 <= v966 47.78/15.09 f_729(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_731(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_731(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_733(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_733(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_713(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_713(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v950, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_714(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v949, v950, v951, v952, v953, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_730(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 0, 3, 7, 2, 4, 8) -> f_732(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, 0, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_732(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, 0, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 3, 7, 2, 4, 8) -> f_734(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, 0, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_734(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, 0, v949, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 3, 7, 2, 4, 8) -> f_759(v937, v938, v939, v940, v941, v942, v943, v944, v945, v946, v947, 1, v966, 0, v949, v966, v953, v968, v954, v955, v956, v957, v958, v959, v960, v961, v962, v963, v964, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_759(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1288, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_760(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1288, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_760(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1288, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_761(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_761(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_762(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 1 + v1299 = v1280 && 0 <= 1 + v1299 47.78/15.09 f_762(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_763(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_763(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_764(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_764(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_765(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_765(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_766(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_766(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1280, 1, v1282, 0, v1284, v1285, v1286, v1287, v1299, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_767(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_767(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_768(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 <= v1299 && 1 <= v1280 47.78/15.09 f_768(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_770(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_770(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_772(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_772(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_774(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_774(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_776(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_776(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_778(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_778(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) -> f_748(v1270, v1271, v1272, v1273, v1274, v1275, v1276, v1277, v1278, v1279, v1299, 1, v1280, v1282, 0, v1284, v1285, v1286, v1287, v1289, v1290, v1291, v1292, v1293, v1294, v1295, v1296, v1297, v1298, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_748(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1162, v1163, 0, v1165, v1166, v1167, v1168, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_749(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1162, v1163, 0, v1165, v1166, v1167, v1168, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_749(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1162, v1163, 0, v1165, v1166, v1167, v1168, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_750(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1163, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_750(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1163, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_751(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1163, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_751(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1163, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_752(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_752(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_753(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 1 < v1160 && 3 <= v1162 && 3 <= v1150 && 4 <= v1166 && 2 <= v1165 47.78/15.09 f_752(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_754(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: v1160 <= 1 && v1162 <= 2 47.78/15.09 f_753(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_755(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_755(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 0, 3, 7, 2, 4, 8) -> f_757(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_757(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 0, 3, 7, 2, 4, 8) -> f_713(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 1, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_754(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_756(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_756(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_758(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_758(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) -> f_759(v1150, v1151, v1152, v1153, v1154, v1155, v1156, v1157, v1158, v1159, v1160, 1, 1, 0, v1165, v1166, v1167, v1168, v1162, v1169, v1170, v1171, v1172, v1173, v1174, v1175, v1176, v1177, v1178, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 Combined rules. Obtained 4 rulesP rules: 47.78/15.09 f_714(v937:0, v938:0, v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, v945:0, v946:0, v947:0, 1, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, v955:0, v956:0, v957:0, v958:0, v959:0, v960:0, v961:0, v962:0, v963:0, v964:0, 0, 3, 7, 2, 4, 8) -> f_714(v937:0, v938:0, v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, v945:0, v946:0, v947:0, 1, 2 * v949:0, v949:0, 2 * v949:0, v953:0, 1 + v953:0, v954:0, v955:0, v956:0, v957:0, v958:0, v959:0, v960:0, v961:0, v962:0, v963:0, v964:0, 0, 3, 7, 2, 4, 8) :|: 2 * v949:0 > 1 && v953:0 > 0 && v947:0 > 2 && v947:0 > 2 * v949:0 && v937:0 > 3 && v954:0 > 3 47.78/15.09 f_714(v937:0, v938:0, v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, v945:0, v946:0, 1 + v1299:0, 1, v949:0, v950:0, v951:0, v952:0, v953:0, v954:0, v955:0, v956:0, v957:0, v958:0, v959:0, v960:0, v961:0, v962:0, v963:0, v964:0, 0, 3, 7, 2, 4, 8) -> f_752(v937:0, v938:0, v939:0, v940:0, v941:0, v942:0, v943:0, v944:0, v945:0, v946:0, v1299:0, 1, 0, v949:0, 2 * v949:0, v953:0, 1 + v953:0, 1 + v1299:0, v955:0, v956:0, v957:0, v958:0, v959:0, v960:0, v961:0, v962:0, v963:0, v964:0, 3, 7, 2, 4, 8) :|: v1299:0 > -1 && 2 * v949:0 > 1 && v953:0 > 0 && 2 * v949:0 >= 1 + v1299:0 47.78/15.09 f_752(v1150:0, v1151:0, v1152:0, v1153:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, 1 + v1299:0, 1, 0, v1165:0, v1166:0, v1167:0, v1168:0, v1162:0, v1169:0, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, v1177:0, v1178:0, 3, 7, 2, 4, 8) -> f_752(v1150:0, v1151:0, v1152:0, v1153:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, v1299:0, 1, 0, v1165:0, v1166:0, v1167:0, v1168:0, 1 + v1299:0, v1169:0, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, v1177:0, v1178:0, 3, 7, 2, 4, 8) :|: v1299:0 > -1 && v1299:0 < 1 && v1162:0 < 3 47.78/15.09 f_752(v1150:0, v1151:0, v1152:0, v1153:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, v1160:0, 1, 0, v1165:0, v1166:0, v1167:0, v1168:0, v1162:0, v1169:0, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, v1177:0, v1178:0, 3, 7, 2, 4, 8) -> f_714(v1150:0, v1151:0, v1152:0, v1153:0, v1154:0, v1155:0, v1156:0, v1157:0, v1158:0, v1159:0, v1160:0, 1, 1, v1165:0, v1166:0, v1167:0, v1168:0, v1162:0, v1169:0, v1170:0, v1171:0, v1172:0, v1173:0, v1174:0, v1175:0, v1176:0, v1177:0, v1178:0, 0, 3, 7, 2, 4, 8) :|: v1162:0 > 2 && v1160:0 > 1 && v1150:0 > 2 && v1165:0 > 1 && v1166:0 > 3 47.78/15.09 Filtered unneeded arguments: 47.78/15.09 f_714(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34) -> f_714(x1, x11, x13, x17, x18) 47.78/15.09 f_752(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33) -> f_752(x1, x11, x14, x15, x17, x18) 47.78/15.09 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 47.78/15.09 f_714(v937:0, v947:0, v949:0, v953:0, v954:0) -> f_714(v937:0, v947:0, 2 * v949:0, 1 + v953:0, v954:0) :|: v953:0 > 0 && 2 * v949:0 > 1 && v947:0 > 2 && v947:0 > 2 * v949:0 && v954:0 > 3 && v937:0 > 3 47.78/15.09 f_714(v937:0, sum~cons_1~v1299:0, v949:0, v953:0, v954:0) -> f_752(v937:0, v1299:0, v949:0, 2 * v949:0, 1 + v953:0, 1 + v1299:0) :|: 2 * v949:0 > 1 && v1299:0 > -1 && 2 * v949:0 >= 1 + v1299:0 && v953:0 > 0 && sum~cons_1~v1299:0 = 1 + v1299:0 47.78/15.09 f_752(v1150:0, sum~cons_1~v1299:0, v1165:0, v1166:0, v1168:0, v1162:0) -> f_752(v1150:0, v1299:0, v1165:0, v1166:0, v1168:0, 1 + v1299:0) :|: v1299:0 < 1 && v1162:0 < 3 && v1299:0 > -1 && sum~cons_1~v1299:0 = 1 + v1299:0 47.78/15.09 f_752(v1150:0, v1160:0, v1165:0, v1166:0, v1168:0, v1162:0) -> f_714(v1150:0, v1160:0, 1, v1168:0, v1162:0) :|: v1160:0 > 1 && v1162:0 > 2 && v1150:0 > 2 && v1166:0 > 3 && v1165:0 > 1 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (9) 47.78/15.09 Obligation: 47.78/15.09 Rules: 47.78/15.09 f_714(v937:0, v947:0, v949:0, v953:0, v954:0) -> f_714(v937:0, v947:0, 2 * v949:0, 1 + v953:0, v954:0) :|: v953:0 > 0 && 2 * v949:0 > 1 && v947:0 > 2 && v947:0 > 2 * v949:0 && v954:0 > 3 && v937:0 > 3 47.78/15.09 f_714(x, x1, x2, x3, x4) -> f_752(x, x5, x2, 2 * x2, 1 + x3, 1 + x5) :|: 2 * x2 > 1 && x5 > -1 && 2 * x2 >= 1 + x5 && x3 > 0 && x1 = 1 + x5 47.78/15.09 f_752(v1150:0, sum~cons_1~v1299:0, v1165:0, v1166:0, v1168:0, v1162:0) -> f_752(v1150:0, v1299:0, v1165:0, v1166:0, v1168:0, 1 + v1299:0) :|: v1299:0 < 1 && v1162:0 < 3 && v1299:0 > -1 && sum~cons_1~v1299:0 = 1 + v1299:0 47.78/15.09 f_752(x6, x7, x8, x9, x10, x11) -> f_714(x6, x7, 1, x10, x11) :|: x7 > 1 && x11 > 2 && x6 > 2 && x9 > 3 && x8 > 1 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (10) IRS2T2 (EQUIVALENT) 47.78/15.09 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 47.78/15.09 47.78/15.09 (f_714_6,1) 47.78/15.09 (f_752_6,2) 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (11) 47.78/15.09 Obligation: 47.78/15.09 START: 0; 47.78/15.09 47.78/15.09 FROM: 0; 47.78/15.09 TO: 1; 47.78/15.09 47.78/15.09 FROM: 0; 47.78/15.09 TO: 2; 47.78/15.09 47.78/15.09 FROM: 1; 47.78/15.09 oldX0 := x0; 47.78/15.09 oldX1 := x1; 47.78/15.09 oldX2 := x2; 47.78/15.09 oldX3 := x3; 47.78/15.09 oldX4 := x4; 47.78/15.09 oldX5 := x5; 47.78/15.09 oldX6 := nondet(); 47.78/15.09 assume(oldX3 > 0 && 2 * oldX2 > 1 && oldX1 > 2 && oldX1 > 2 * oldX2 && oldX4 > 3 && oldX0 > 3); 47.78/15.09 x0 := oldX0; 47.78/15.09 x1 := oldX1; 47.78/15.09 x2 := 2 * oldX2; 47.78/15.09 x3 := 1 + oldX3; 47.78/15.09 x4 := oldX4; 47.78/15.09 x5 := oldX6; 47.78/15.09 TO: 1; 47.78/15.09 47.78/15.09 FROM: 1; 47.78/15.09 oldX0 := x0; 47.78/15.09 oldX1 := x1; 47.78/15.09 oldX2 := x2; 47.78/15.09 oldX3 := x3; 47.78/15.09 oldX4 := x4; 47.78/15.09 oldX5 := x5; 47.78/15.09 oldX6 := oldX1 - 1; 47.78/15.09 assume(2 * oldX2 > 1 && oldX6 > -1 && 2 * oldX2 >= 1 + oldX6 && oldX3 > 0 && oldX1 = 1 + oldX6); 47.78/15.09 x0 := oldX0; 47.78/15.09 x1 := oldX1 - 1; 47.78/15.09 x2 := oldX2; 47.78/15.09 x3 := 2 * oldX2; 47.78/15.09 x4 := 1 + oldX3; 47.78/15.09 x5 := 1 + oldX6; 47.78/15.09 TO: 2; 47.78/15.09 47.78/15.09 FROM: 2; 47.78/15.09 oldX0 := x0; 47.78/15.09 oldX1 := x1; 47.78/15.09 oldX2 := x2; 47.78/15.09 oldX3 := x3; 47.78/15.09 oldX4 := x4; 47.78/15.09 oldX5 := x5; 47.78/15.09 oldX6 := oldX1 - 1; 47.78/15.09 assume(oldX6 < 1 && oldX5 < 3 && oldX6 > -1 && oldX1 = 1 + oldX6); 47.78/15.09 x0 := oldX0; 47.78/15.09 x1 := oldX1 - 1; 47.78/15.09 x2 := oldX2; 47.78/15.09 x3 := oldX3; 47.78/15.09 x4 := oldX4; 47.78/15.09 x5 := 1 + oldX6; 47.78/15.09 TO: 2; 47.78/15.09 47.78/15.09 FROM: 2; 47.78/15.09 oldX0 := x0; 47.78/15.09 oldX1 := x1; 47.78/15.09 oldX2 := x2; 47.78/15.09 oldX3 := x3; 47.78/15.09 oldX4 := x4; 47.78/15.09 oldX5 := x5; 47.78/15.09 oldX6 := nondet(); 47.78/15.09 assume(oldX1 > 1 && oldX5 > 2 && oldX0 > 2 && oldX3 > 3 && oldX2 > 1); 47.78/15.09 x0 := oldX0; 47.78/15.09 x1 := oldX1; 47.78/15.09 x2 := 1; 47.78/15.09 x3 := oldX4; 47.78/15.09 x4 := oldX5; 47.78/15.09 x5 := oldX6; 47.78/15.09 TO: 1; 47.78/15.09 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (12) T2 (EQUIVALENT) 47.78/15.09 Initially, performed program simplifications using lexicographic rank functions: 47.78/15.09 * Removed transitions 2, 5, 6, 14, 17, 18 using the following rank functions: 47.78/15.09 - Rank function 1: 47.78/15.09 RF for loc. 6: -1+3*x1 47.78/15.09 RF for loc. 7: 1+3*x1 47.78/15.09 RF for loc. 8: -1+3*x1 47.78/15.09 RF for loc. 12: 3*x1 47.78/15.09 Bound for (chained) transitions 6: 2 47.78/15.09 Bound for (chained) transitions 17: 3 47.78/15.09 Bound for (chained) transitions 18: 6 47.78/15.09 - Rank function 2: 47.78/15.09 RF for loc. 6: 1+x1-2*x2 47.78/15.09 RF for loc. 7: 0 47.78/15.09 RF for loc. 8: x1-2*x2 47.78/15.09 RF for loc. 12: -1 47.78/15.09 Bound for (chained) transitions 5: 1 47.78/15.09 - Rank function 3: 47.78/15.09 RF for loc. 6: 0 47.78/15.09 RF for loc. 7: 1 47.78/15.09 RF for loc. 8: -1 47.78/15.09 RF for loc. 12: 0 47.78/15.09 Bound for (chained) transitions 2: 0 47.78/15.09 - Rank function 4: 47.78/15.09 RF for loc. 7: 0 47.78/15.09 RF for loc. 12: -1 47.78/15.09 Bound for (chained) transitions 14: 0 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (13) 47.78/15.09 YES 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (14) 47.78/15.09 Obligation: 47.78/15.09 SCC 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (15) SCC2IRS (SOUND) 47.78/15.09 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 47.78/15.09 Generated rules. Obtained 19 rulesP rules: 47.78/15.09 f_513(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_514(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_514(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_515(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_515(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_516(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_516(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_517(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: v327 < v315 && 3 <= v315 47.78/15.09 f_517(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_519(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_519(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_521(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_521(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_523(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_523(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v326, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_525(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_525(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_527(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: v341 = 2 * v327 && 4 <= v341 47.78/15.09 f_527(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_529(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_529(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_531(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_531(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_533(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_533(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_535(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_535(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_537(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: v345 = 1 + v329 && 2 <= v345 47.78/15.09 f_537(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_539(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 f_539(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_541(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_541(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_543(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_543(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_512(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v327, v341, v329, v345, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: TRUE 47.78/15.09 f_512(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) -> f_513(v315, v316, v317, v318, v319, v320, v321, v322, v323, v324, 1, v326, v327, v328, v329, v330, v331, v332, v333, v334, v335, v336, v337, v338, v339, 0, 3, 7, 2, 4, 8) :|: 0 = 0 47.78/15.09 Combined rules. Obtained 1 rulesP rules: 47.78/15.09 f_513(v315:0, v316:0, v317:0, v318:0, v319:0, v320:0, v321:0, v322:0, v323:0, v324:0, 1, v326:0, v327:0, v328:0, v329:0, v330:0, v331:0, v332:0, v333:0, v334:0, v335:0, v336:0, v337:0, v338:0, v339:0, 0, 3, 7, 2, 4, 8) -> f_513(v315:0, v316:0, v317:0, v318:0, v319:0, v320:0, v321:0, v322:0, v323:0, v324:0, 1, v327:0, 2 * v327:0, v329:0, 1 + v329:0, v330:0, v331:0, v332:0, v333:0, v334:0, v335:0, v336:0, v337:0, v338:0, v339:0, 0, 3, 7, 2, 4, 8) :|: v315:0 > 2 && v327:0 < v315:0 && v329:0 > 0 && 3 < 2 * v327:0 47.78/15.09 Filtered unneeded arguments: 47.78/15.09 f_513(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31) -> f_513(x1, x13, x15) 47.78/15.09 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 47.78/15.09 f_513(v315:0, v327:0, v329:0) -> f_513(v315:0, 2 * v327:0, 1 + v329:0) :|: v327:0 < v315:0 && v315:0 > 2 && 3 < 2 * v327:0 && v329:0 > 0 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (16) 47.78/15.09 Obligation: 47.78/15.09 Rules: 47.78/15.09 f_513(v315:0, v327:0, v329:0) -> f_513(v315:0, 2 * v327:0, 1 + v329:0) :|: v327:0 < v315:0 && v315:0 > 2 && 3 < 2 * v327:0 && v329:0 > 0 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (17) IRS2T2 (EQUIVALENT) 47.78/15.09 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 47.78/15.09 47.78/15.09 (f_513_3,1) 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (18) 47.78/15.09 Obligation: 47.78/15.09 START: 0; 47.78/15.09 47.78/15.09 FROM: 0; 47.78/15.09 TO: 1; 47.78/15.09 47.78/15.09 FROM: 1; 47.78/15.09 oldX0 := x0; 47.78/15.09 oldX1 := x1; 47.78/15.09 oldX2 := x2; 47.78/15.09 assume(oldX1 < oldX0 && oldX0 > 2 && 3 < 2 * oldX1 && oldX2 > 0); 47.78/15.09 x0 := oldX0; 47.78/15.09 x1 := 2 * oldX1; 47.78/15.09 x2 := 1 + oldX2; 47.78/15.09 TO: 1; 47.78/15.09 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (19) T2 (EQUIVALENT) 47.78/15.09 Initially, performed program simplifications using lexicographic rank functions: 47.78/15.09 * Removed transitions 1, 3, 4 using the following rank functions: 47.78/15.09 - Rank function 1: 47.78/15.09 RF for loc. 5: 2+2*x0-2*x1 47.78/15.09 RF for loc. 6: 2*x0-2*x1 47.78/15.09 Bound for (chained) transitions 3: 2 47.78/15.09 Bound for (chained) transitions 4: 2 47.78/15.09 - Rank function 2: 47.78/15.09 RF for loc. 5: 1 47.78/15.09 RF for loc. 6: 0 47.78/15.09 Bound for (chained) transitions 1: 1 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (20) 47.78/15.09 YES 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (21) 47.78/15.09 Obligation: 47.78/15.09 SCC 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (22) SCC2IRS (SOUND) 47.78/15.09 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 47.78/15.09 Generated rules. Obtained 21 rulesP rules: 47.78/15.09 f_323(v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, 1, 0, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_326(v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v43, 1, v40, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_326(v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v43, 1, v40, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_329(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 <= v43 && v40 = 1 && v43 = 0 && 0 = 0 47.78/15.09 f_329(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_332(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_332(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_335(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_335(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_338(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_338(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_341(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_341(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_345(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_345(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_349(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_349(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_352(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_352(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_355(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_355(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_358(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_358(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_361(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_361(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_364(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_364(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_367(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_367(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_370(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_370(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_373(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_373(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_376(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 f_376(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_379(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_379(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_382(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_382(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_320(1, v31, v32, v33, v34, v35, v36, v37, v38, v39, 0, 1, 0, -1, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: TRUE 47.78/15.09 f_320(v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, 1, 0, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) -> f_323(v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, 1, 0, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, 3, 7, 4, 8) :|: 0 = 0 47.78/15.09 Combined rules. Obtained 1 rulesP rules: 47.78/15.09 f_323(v30:0, v31:0, v32:0, v33:0, v34:0, v35:0, v36:0, v37:0, v38:0, v39:0, 1, 1, 0, 0, v44:0, v45:0, v46:0, v47:0, v48:0, v49:0, v50:0, v51:0, v52:0, v53:0, 3, 7, 4, 8) -> f_323(1, v31:0, v32:0, v33:0, v34:0, v35:0, v36:0, v37:0, v38:0, v39:0, 0, 1, 0, -1, v44:0, v45:0, v46:0, v47:0, v48:0, v49:0, v50:0, v51:0, v52:0, v53:0, 3, 7, 4, 8) :|: TRUE 47.78/15.09 Filtered unneeded arguments: 47.78/15.09 f_323(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28) -> f_323(x11, x14) 47.78/15.09 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 47.78/15.09 f_323(cons_1, cons_0) -> f_323(0, -1) :|: TRUE && cons_1 = 1 && cons_0 = 0 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (23) 47.78/15.09 Obligation: 47.78/15.09 Rules: 47.78/15.09 f_323(cons_1, cons_0) -> f_323(0, -1) :|: TRUE && cons_1 = 1 && cons_0 = 0 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (24) TerminationGraphProcessor (EQUIVALENT) 47.78/15.09 Constructed the termination graph and obtained no non-trivial SCC(s). 47.78/15.09 47.78/15.09 ---------------------------------------- 47.78/15.09 47.78/15.09 (25) 47.78/15.09 YES 48.01/15.15 EOF