/export/starexec/sandbox2/solver/bin/starexec_run_c /export/starexec/sandbox2/benchmark/theBenchmark.c /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox2/benchmark/theBenchmark.c # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination of the given C Problem could be proven: (0) C Problem (1) CToLLVMProof [EQUIVALENT, 175 ms] (2) LLVM problem (3) LLVMToTerminationGraphProof [EQUIVALENT, 12.6 s] (4) LLVM Symbolic Execution Graph (5) SymbolicExecutionGraphToSCCProof [SOUND, 0 ms] (6) LLVM Symbolic Execution SCC (7) SCC2IRS [SOUND, 167 ms] (8) IntTRS (9) IntTRSCompressionProof [EQUIVALENT, 0 ms] (10) IntTRS (11) RankingReductionPairProof [EQUIVALENT, 25 ms] (12) YES ---------------------------------------- (0) Obligation: c file /export/starexec/sandbox2/benchmark/theBenchmark.c ---------------------------------------- (1) CToLLVMProof (EQUIVALENT) Compiled c-file /export/starexec/sandbox2/benchmark/theBenchmark.c to LLVM. ---------------------------------------- (2) Obligation: LLVM Problem Aliases: Data layout: "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" Machine: "x86_64-pc-linux-gnu" Type definitions: Global variables: Function declarations and definitions: *BasicFunctionTypename: "__VERIFIER_nondet_int" returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc *BasicFunctionTypename: "test_fun" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: (i i32, j i32, k i32, tmp i32) variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 %2 = alloca i32, align 4 %3 = alloca i32, align 4 %4 = alloca i32, align 4 %i_ref = alloca *i32, align 8 %j_ref = alloca *i32, align 8 %k_ref = alloca *i32, align 8 %tmp_ref = alloca *i32, align 8 %c = alloca *i32, align 8 store %i, %1 store %j, %2 store %k, %3 store %tmp, %4 %5 = alloca i8, numElementsLit: 4 %6 = bitcast *i8 %5 to *i32 store %6, %i_ref %7 = alloca i8, numElementsLit: 4 %8 = bitcast *i8 %7 to *i32 store %8, %j_ref %9 = alloca i8, numElementsLit: 4 %10 = bitcast *i8 %9 to *i32 store %10, %k_ref %11 = alloca i8, numElementsLit: 4 %12 = bitcast *i8 %11 to *i32 store %12, %tmp_ref %13 = alloca i8, numElementsLit: 4 %14 = bitcast *i8 %13 to *i32 store %14, %c %15 = load %1 %16 = load %i_ref store %15, %16 %17 = load %2 %18 = load %j_ref store %17, %18 %19 = load %3 %20 = load %k_ref store %19, %20 %21 = load %4 %22 = load %tmp_ref store %21, %22 %23 = load %c store 0, %23 br %24 24: %25 = load %i_ref %26 = load %25 %27 = icmp sle %26 100 br %27, %28, %33 28: %29 = load %j_ref %30 = load %29 %31 = load %3 %32 = icmp sle %30 %31 br %33 33: %34 = phi [0, %24], [%32, %28] br %34, %35, %54 35: %36 = load %i_ref %37 = load %36 %38 = load %tmp_ref store %37, %38 %39 = load %j_ref %40 = load %39 %41 = load %i_ref store %40, %41 %42 = load %tmp_ref %43 = load %42 %44 = add %43 1 %45 = load %j_ref store %44, %45 %46 = load %k_ref %47 = load %46 %48 = sub %47 1 %49 = load %k_ref store %48, %49 %50 = load %c %51 = load %50 %52 = add %51 1 %53 = load %c store %52, %53 br %24 54: %55 = load %c %56 = load %55 ret %56 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 0: %1 = alloca i32, align 4 store 0, %1 %2 = call i32 @__VERIFIER_nondet_int() %3 = call i32 @__VERIFIER_nondet_int() %4 = call i32 @__VERIFIER_nondet_int() %5 = call i32 @__VERIFIER_nondet_int() %6 = call i32 @test_fun(i32 %2, i32 %3, i32 %4, i32 %5) ret %6 Analyze Termination of all function calls matching the pattern: main() ---------------------------------------- (3) LLVMToTerminationGraphProof (EQUIVALENT) Constructed symbolic execution graph for LLVM program and proved memory safety. ---------------------------------------- (4) Obligation: SE Graph ---------------------------------------- (5) SymbolicExecutionGraphToSCCProof (SOUND) Splitted symbolic execution graph to 1 SCC. ---------------------------------------- (6) Obligation: SCC ---------------------------------------- (7) SCC2IRS (SOUND) Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: Generated rules. Obtained 37 rulesP rules: f_678(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1449, 1, v1451, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_679(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_679(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_680(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: v1451 <= 100 f_680(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_682(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_682(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_684(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_684(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_686(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_686(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1449, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_688(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_688(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_690(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_690(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_692(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: v1452 <= v1433 f_692(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_695(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_695(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_697(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_697(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_699(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_699(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_701(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_701(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_703(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_703(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_705(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_705(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_707(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_707(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_708(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_708(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_709(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_709(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_710(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_710(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_711(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_711(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_712(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_712(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1449, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_713(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_713(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_714(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: v1652 = 1 + v1451 && v1652 <= 101 f_714(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_715(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_715(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_716(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_716(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_717(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_717(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_718(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_718(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_719(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 1 + v1654 = v1454 f_719(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_720(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_720(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_721(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_721(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_722(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_722(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_723(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 f_723(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_724(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) :|: v1656 = 1 + v1456 && 2 <= v1656 f_724(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) -> f_725(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) :|: 0 = 0 f_725(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) -> f_726(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) :|: TRUE f_726(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) -> f_727(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) :|: TRUE f_727(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8, 2) -> f_677(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1451, 1, v1452, v1652, v1454, v1654, v1456, v1656, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: TRUE f_677(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1449, 1, v1451, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) -> f_678(v1431, v1432, v1433, v1434, v1435, v1436, v1437, v1438, v1439, v1440, v1441, v1442, v1443, v1444, v1445, v1446, v1447, v1448, v1449, 1, v1451, v1452, v1453, v1454, v1455, v1456, v1457, v1458, v1459, v1460, v1461, v1462, v1463, v1464, v1465, v1466, v1467, v1468, v1469, v1470, v1471, v1472, 0, 3, 7, 100, 101, 4, 8) :|: 0 = 0 Combined rules. Obtained 1 rulesP rules: f_678(v1431:0, v1432:0, v1433:0, v1434:0, v1435:0, v1436:0, v1437:0, v1438:0, v1439:0, v1440:0, v1441:0, v1442:0, v1443:0, v1444:0, v1445:0, v1446:0, v1447:0, v1448:0, v1449:0, 1, v1451:0, v1452:0, v1453:0, 1 + v1654:0, v1455:0, v1456:0, v1457:0, v1458:0, v1459:0, v1460:0, v1461:0, v1462:0, v1463:0, v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, 0, 3, 7, 100, 101, 4, 8) -> f_678(v1431:0, v1432:0, v1433:0, v1434:0, v1435:0, v1436:0, v1437:0, v1438:0, v1439:0, v1440:0, v1441:0, v1442:0, v1443:0, v1444:0, v1445:0, v1446:0, v1447:0, v1448:0, v1451:0, 1, v1452:0, 1 + v1451:0, 1 + v1654:0, v1654:0, v1456:0, 1 + v1456:0, v1457:0, v1458:0, v1459:0, v1460:0, v1461:0, v1462:0, v1463:0, v1464:0, v1465:0, v1466:0, v1467:0, v1468:0, v1469:0, v1470:0, v1471:0, v1472:0, 0, 3, 7, 100, 101, 4, 8) :|: v1451:0 < 101 && v1452:0 <= v1433:0 && v1456:0 > 0 Filtered unneeded arguments: f_678(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, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49) -> f_678(x3, x21, x22, x24, x26) Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: f_678(v1433:0, v1451:0, v1452:0, sum~cons_1~v1654:0, v1456:0) -> f_678(v1433:0, v1452:0, 1 + v1451:0, v1654:0, 1 + v1456:0) :|: v1452:0 <= v1433:0 && v1456:0 > 0 && v1451:0 < 101 && sum~cons_1~v1654:0 = 1 + v1654:0 ---------------------------------------- (8) Obligation: Rules: f_678(v1433:0, v1451:0, v1452:0, sum~cons_1~v1654:0, v1456:0) -> f_678(v1433:0, v1452:0, 1 + v1451:0, v1654:0, 1 + v1456:0) :|: v1452:0 <= v1433:0 && v1456:0 > 0 && v1451:0 < 101 && sum~cons_1~v1654:0 = 1 + v1654:0 ---------------------------------------- (9) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (10) Obligation: Rules: f_678(v1433:0:0, v1451:0:0, v1452:0:0, sum~cons_1~v1654:0:0, v1456:0:0) -> f_678(v1433:0:0, v1452:0:0, 1 + v1451:0:0, v1654:0:0, 1 + v1456:0:0) :|: v1452:0:0 <= v1433:0:0 && v1456:0:0 > 0 && v1451:0:0 < 101 && sum~cons_1~v1654:0:0 = 1 + v1654:0:0 ---------------------------------------- (11) RankingReductionPairProof (EQUIVALENT) Interpretation: [ f_678 ] = -1*f_678_3 + f_678_1 + -1*f_678_2 The following rules are decreasing: f_678(v1433:0:0, v1451:0:0, v1452:0:0, sum~cons_1~v1654:0:0, v1456:0:0) -> f_678(v1433:0:0, v1452:0:0, 1 + v1451:0:0, v1654:0:0, 1 + v1456:0:0) :|: v1452:0:0 <= v1433:0:0 && v1456:0:0 > 0 && v1451:0:0 < 101 && sum~cons_1~v1654:0:0 = 1 + v1654:0:0 The following rules are bounded: f_678(v1433:0:0, v1451:0:0, v1452:0:0, sum~cons_1~v1654:0:0, v1456:0:0) -> f_678(v1433:0:0, v1452:0:0, 1 + v1451:0:0, v1654:0:0, 1 + v1456:0:0) :|: v1452:0:0 <= v1433:0:0 && v1456:0:0 > 0 && v1451:0:0 < 101 && sum~cons_1~v1654:0:0 = 1 + v1654:0:0 ---------------------------------------- (12) YES