66.80/20.69 YES 66.80/20.71 proof of /export/starexec/sandbox/benchmark/theBenchmark.c 66.80/20.71 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 66.80/20.71 66.80/20.71 66.80/20.71 Termination of the given C Problem could be proven: 66.80/20.71 66.80/20.71 (0) C Problem 66.80/20.71 (1) CToLLVMProof [EQUIVALENT, 174 ms] 66.80/20.71 (2) LLVM problem 66.80/20.71 (3) LLVMToTerminationGraphProof [EQUIVALENT, 11.5 s] 66.80/20.71 (4) LLVM Symbolic Execution Graph 66.80/20.71 (5) SymbolicExecutionGraphToSCCProof [SOUND, 3 ms] 66.80/20.71 (6) AND 66.80/20.71 (7) LLVM Symbolic Execution SCC 66.80/20.71 (8) SCC2IRS [SOUND, 129 ms] 66.80/20.71 (9) IntTRS 66.80/20.71 (10) IRS2T2 [EQUIVALENT, 0 ms] 66.80/20.71 (11) T2IntSys 66.80/20.71 (12) T2 [EQUIVALENT, 2024 ms] 66.80/20.71 (13) YES 66.80/20.71 (14) LLVM Symbolic Execution SCC 66.80/20.71 (15) SCC2IRS [SOUND, 85 ms] 66.80/20.71 (16) IntTRS 66.80/20.71 (17) IRS2T2 [EQUIVALENT, 0 ms] 66.80/20.71 (18) T2IntSys 66.80/20.71 (19) T2 [EQUIVALENT, 1466 ms] 66.80/20.71 (20) YES 66.80/20.71 (21) LLVM Symbolic Execution SCC 66.80/20.71 (22) SCC2IRS [SOUND, 79 ms] 66.80/20.71 (23) IntTRS 66.80/20.71 (24) IntTRSCompressionProof [EQUIVALENT, 0 ms] 66.80/20.71 (25) IntTRS 66.80/20.71 (26) RankingReductionPairProof [EQUIVALENT, 10 ms] 66.80/20.71 (27) YES 66.80/20.71 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (0) 66.80/20.71 Obligation: 66.80/20.71 c file /export/starexec/sandbox/benchmark/theBenchmark.c 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (1) CToLLVMProof (EQUIVALENT) 66.80/20.71 Compiled c-file /export/starexec/sandbox/benchmark/theBenchmark.c to LLVM. 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (2) 66.80/20.71 Obligation: 66.80/20.71 LLVM Problem 66.80/20.71 66.80/20.71 Aliases: 66.80/20.71 66.80/20.71 Data layout: 66.80/20.71 66.80/20.71 "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" 66.80/20.71 66.80/20.71 Machine: 66.80/20.71 66.80/20.71 "x86_64-pc-linux-gnu" 66.80/20.71 66.80/20.71 Type definitions: 66.80/20.71 66.80/20.71 Global variables: 66.80/20.71 66.80/20.71 Function declarations and definitions: 66.80/20.71 66.80/20.71 *BasicFunctionTypename: "main" linkageType: EXTERNALLY_VISIBLE returnParam: i32 parameters: () variableLength: false visibilityType: DEFAULT callingConvention: ccc 66.80/20.71 0: 66.80/20.71 %1 = alloca i32, align 4 66.80/20.71 %x = alloca *i32, align 8 66.80/20.71 %y = alloca *i32, align 8 66.80/20.71 %z = alloca *i32, align 8 66.80/20.71 store 0, %1 66.80/20.71 %2 = alloca i8, numElementsLit: 4 66.80/20.71 %3 = bitcast *i8 %2 to *i32 66.80/20.71 store %3, %x 66.80/20.71 %4 = alloca i8, numElementsLit: 4 66.80/20.71 %5 = bitcast *i8 %4 to *i32 66.80/20.71 store %5, %y 66.80/20.71 %6 = alloca i8, numElementsLit: 4 66.80/20.71 %7 = bitcast *i8 %6 to *i32 66.80/20.71 store %7, %z 66.80/20.71 %8 = load %x 66.80/20.71 %9 = load %8 66.80/20.71 %10 = icmp sgt %9 10000 66.80/20.71 br %10, %23, %11 66.80/20.71 11: 66.80/20.71 %12 = load %x 66.80/20.71 %13 = load %12 66.80/20.71 %14 = icmp slt %13 -10000 66.80/20.71 br %14, %23, %15 66.80/20.71 15: 66.80/20.71 %16 = load %y 66.80/20.71 %17 = load %16 66.80/20.71 %18 = icmp sgt %17 10000 66.80/20.71 br %18, %23, %19 66.80/20.71 19: 66.80/20.71 %20 = load %z 66.80/20.71 %21 = load %20 66.80/20.71 %22 = icmp sgt %21 10000 66.80/20.71 br %22, %23, %24 66.80/20.71 23: 66.80/20.71 store 0, %1 66.80/20.71 br %54 66.80/20.71 24: 66.80/20.71 br %25 66.80/20.71 25: 66.80/20.71 %26 = load %y 66.80/20.71 %27 = load %26 66.80/20.71 %28 = icmp sge %27 1 66.80/20.71 br %28, %29, %53 66.80/20.71 29: 66.80/20.71 %30 = load %x 66.80/20.71 %31 = load %30 66.80/20.71 %32 = add %31 -1 66.80/20.71 store %32, %30 66.80/20.71 br %33 66.80/20.71 33: 66.80/20.71 %34 = load %y 66.80/20.71 %35 = load %34 66.80/20.71 %36 = load %z 66.80/20.71 %37 = load %36 66.80/20.71 %38 = icmp slt %35 %37 66.80/20.71 br %38, %39, %46 66.80/20.71 39: 66.80/20.71 %40 = load %x 66.80/20.71 %41 = load %40 66.80/20.71 %42 = add %41 1 66.80/20.71 store %42, %40 66.80/20.71 %43 = load %z 66.80/20.71 %44 = load %43 66.80/20.71 %45 = add %44 -1 66.80/20.71 store %45, %43 66.80/20.71 br %33 66.80/20.71 46: 66.80/20.71 %47 = load %x 66.80/20.71 %48 = load %47 66.80/20.71 %49 = load %y 66.80/20.71 %50 = load %49 66.80/20.71 %51 = add %48 %50 66.80/20.71 %52 = load %y 66.80/20.71 store %51, %52 66.80/20.71 br %25 66.80/20.71 53: 66.80/20.71 store 0, %1 66.80/20.71 br %54 66.80/20.71 54: 66.80/20.71 %55 = load %1 66.80/20.71 ret %55 66.80/20.71 66.80/20.71 66.80/20.71 Analyze Termination of all function calls matching the pattern: 66.80/20.71 main() 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (3) LLVMToTerminationGraphProof (EQUIVALENT) 66.80/20.71 Constructed symbolic execution graph for LLVM program and proved memory safety. 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (4) 66.80/20.71 Obligation: 66.80/20.71 SE Graph 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (5) SymbolicExecutionGraphToSCCProof (SOUND) 66.80/20.71 Splitted symbolic execution graph to 3 SCCs. 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (6) 66.80/20.71 Complex Obligation (AND) 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (7) 66.80/20.71 Obligation: 66.80/20.71 SCC 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (8) SCC2IRS (SOUND) 66.80/20.71 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 66.80/20.71 Generated rules. Obtained 70 rulesP rules: 66.80/20.71 f_785(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1627, 1, v1629, v1630, v1631, v1632, v1633, v1634, v1635, v1636, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_787(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_787(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_789(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 1 <= v1636 66.80/20.71 f_789(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_792(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_792(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_795(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_795(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_799(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_799(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1629, v1630, v1627, v1631, v1632, v1633, v1634, v1635, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_803(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1630, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_803(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1630, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_807(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 1 + v1829 = v1635 66.80/20.71 f_807(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_811(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_811(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_814(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_814(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_817(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_817(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1627, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_820(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_820(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_823(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_823(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_826(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_826(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_829(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: v1636 < v1631 && v1636 <= 9998 && 2 <= v1631 && 3 <= v1634 && v1635 <= 9997 && v1829 <= 9996 && 3 <= v1626 && 2 <= v1625 66.80/20.71 f_826(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_830(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: v1631 <= v1636 66.80/20.71 f_829(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_833(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 0 = 0 66.80/20.71 f_833(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_837(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: TRUE 66.80/20.71 f_837(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_840(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 0 = 0 66.80/20.71 f_840(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_843(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 0 = 0 66.80/20.71 f_843(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_846(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: v1635 = 1 + v1829 66.80/20.71 f_846(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_849(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: TRUE 66.80/20.71 f_849(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_853(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 0 = 0 66.80/20.71 f_853(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_857(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 0 = 0 66.80/20.71 f_857(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_861(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: 1 + v2146 = v1631 && 1 <= v2146 && v2146 <= 9998 66.80/20.71 f_861(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_865(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: TRUE 66.80/20.71 f_865(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_869(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) :|: TRUE 66.80/20.71 f_869(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v2146, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9998, 4, 8, 9996) -> f_836(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1627, v1829, v1635, v2146, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 9997, 9996, 9998, 4, 8) :|: TRUE 66.80/20.71 f_836(v1948, v1949, v1950, v1951, v1952, v1953, v1954, v1955, 0, v1957, v1958, v1959, 1, v1961, v1962, v1963, v1964, v1965, v1966, v1967, v1968, v1969, v1970, v1971, v1972, v1973, v1974, 3, 7, 10000, 2, 9999, 9997, 9996, 9998, 4, 8) -> f_883(v1948, v1949, v1950, v1951, v1952, v1953, v1954, v1955, 0, v1957, v1958, v1959, 1, v1961, v1962, v1963, v1964, v1965, v1966, v1967, v1968, v1969, v1970, v1971, v1972, v1973, v1974, 3, 7, 10000, 2, 9999, 9997, 9996, 9998, 4, 8) :|: TRUE 66.80/20.71 f_883(v2379, v2380, v2381, v2382, v2383, v2384, v2385, v2386, 0, v2388, v2389, v2390, 1, v2392, v2393, v2394, v2395, v2396, v2397, v2398, v2399, v2400, v2401, v2402, v2403, v2404, v2405, 3, 7, 10000, 2, 9999, 9997, 9996, 9998, 4, 8) -> f_911(v2379, v2380, v2381, v2382, v2383, v2384, v2385, v2386, 0, v2388, v2389, v2390, 1, v2392, v2393, v2394, v2395, v2396, v2397, v2398, v2399, v2400, v2401, v2402, v2403, v2404, v2405, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: TRUE 66.80/20.71 f_911(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_912(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_912(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_913(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_913(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_914(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_914(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2629, v2630, v2631, v2632, v2633, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_915(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_915(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_916(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: v2625 < v2633 && v2625 <= 9998 && 2 <= v2633 && 3 <= v2629 && 3 <= v2624 && 3 <= v2623 66.80/20.71 f_915(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_917(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: v2633 <= v2625 && v2633 = v2625 66.80/20.71 f_916(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_918(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_918(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_920(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_920(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_922(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_922(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_924(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_924(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_926(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: v2746 = 1 + v2632 66.80/20.71 f_926(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_928(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_928(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_930(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_930(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_932(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_932(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_934(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: 1 + v2749 = v2633 && 1 <= v2749 && v2749 <= 9998 66.80/20.71 f_934(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_936(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_936(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_938(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_938(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 9998, 9997, 9996, 2, 9999, 4, 8) -> f_911(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2633, v2630, v2632, v2746, v2749, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: TRUE 66.80/20.71 f_917(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_919(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_919(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_921(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: TRUE 66.80/20.71 f_921(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_923(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_923(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2630, v2631, v2632, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_925(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2630, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_925(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2630, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_927(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2630, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_927(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2630, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_929(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_929(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_931(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: v2748 = v2632 + v2625 66.80/20.71 f_931(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_933(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: 0 = 0 66.80/20.71 f_933(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_935(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: TRUE 66.80/20.71 f_935(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_937(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: TRUE 66.80/20.71 f_937(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2632, v2748, v2631, v2629, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_782(v2614, v2615, v2616, v2617, v2618, v2619, v2620, v2621, 0, v2623, v2624, v2625, 1, v2627, v2628, v2625, v2631, v2632, v2629, v2632, v2748, v2634, v2635, v2636, v2637, v2638, v2639, v2640, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_782(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1627, 1, v1629, v1630, v1631, v1632, v1633, v1634, v1635, v1636, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_785(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1627, 1, v1629, v1630, v1631, v1632, v1633, v1634, v1635, v1636, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_830(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_834(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_834(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_838(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_838(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_841(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_841(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_844(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_844(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_847(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_847(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1627, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_850(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_850(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_854(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: v2040 = v1829 + v1636 66.80/20.71 f_854(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_858(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_858(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_862(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_862(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_866(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_866(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) -> f_782(v1616, v1617, v1618, v1619, v1620, v1621, v1622, v1623, 0, v1625, v1626, v1636, 1, v1635, v1829, v1631, v1632, v1633, v1634, v1829, v2040, v1637, v1638, v1639, v1640, v1641, v1642, v1643, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 Combined rules. Obtained 4 rulesP rules: 66.80/20.71 f_785(v1616:0, v1617:0, v1618:0, v1619:0, v1620:0, v1621:0, v1622:0, v1623:0, 0, v1625:0, v1626:0, v1627:0, 1, v1629:0, v1630:0, v1631:0, v1632:0, v1633:0, v1634:0, 1 + v1829:0, v1636:0, v1637:0, v1638:0, v1639:0, v1640:0, v1641:0, v1642:0, v1643:0, 3, 7, 10000, 2, 9999, 4, 8) -> f_785(v1616:0, v1617:0, v1618:0, v1619:0, v1620:0, v1621:0, v1622:0, v1623:0, 0, v1625:0, v1626:0, v1636:0, 1, 1 + v1829:0, v1829:0, v1631:0, v1632:0, v1633:0, v1634:0, v1829:0, v1829:0 + v1636:0, v1637:0, v1638:0, v1639:0, v1640:0, v1641:0, v1642:0, v1643:0, 3, 7, 10000, 2, 9999, 4, 8) :|: v1636:0 >= v1631:0 && v1636:0 > 0 66.80/20.71 f_915(v2614:0, v2615:0, v2616:0, v2617:0, v2618:0, v2619:0, v2620:0, v2621:0, 0, v2623:0, v2624:0, v2625:0, 1, v2627:0, v2628:0, v2625:0, v2630:0, v2631:0, v2632:0, v2629:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, v2639:0, v2640:0, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_785(v2614:0, v2615:0, v2616:0, v2617:0, v2618:0, v2619:0, v2620:0, v2621:0, 0, v2623:0, v2624:0, v2625:0, 1, v2627:0, v2628:0, v2625:0, v2631:0, v2632:0, v2629:0, v2632:0, v2632:0 + v2625:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, v2639:0, v2640:0, 3, 7, 10000, 2, 9999, 4, 8) :|: TRUE 66.80/20.71 f_915(v2614:0, v2615:0, v2616:0, v2617:0, v2618:0, v2619:0, v2620:0, v2621:0, 0, v2623:0, v2624:0, v2625:0, 1, v2627:0, v2628:0, 1 + v2749:0, v2630:0, v2631:0, v2632:0, v2629:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, v2639:0, v2640:0, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) -> f_915(v2614:0, v2615:0, v2616:0, v2617:0, v2618:0, v2619:0, v2620:0, v2621:0, 0, v2623:0, v2624:0, v2625:0, 1, v2627:0, v2628:0, v2749:0, v2630:0, v2632:0, 1 + v2632:0, 1 + v2749:0, v2634:0, v2635:0, v2636:0, v2637:0, v2638:0, v2639:0, v2640:0, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: v2625:0 < 9999 && v2625:0 < 1 + v2749:0 && v2749:0 > 0 && v2629:0 > 2 && v2624:0 > 2 && v2623:0 > 2 && v2749:0 < 9999 66.80/20.71 f_785(v1616:0, v1617:0, v1618:0, v1619:0, v1620:0, v1621:0, v1622:0, v1623:0, 0, v1625:0, v1626:0, v1627:0, 1, v1629:0, v1630:0, 1 + v2146:0, v1632:0, v1633:0, v1634:0, 1 + v1829:0, v1636:0, v1637:0, v1638:0, v1639:0, v1640:0, v1641:0, v1642:0, v1643:0, 3, 7, 10000, 2, 9999, 4, 8) -> f_915(v1616:0, v1617:0, v1618:0, v1619:0, v1620:0, v1621:0, v1622:0, v1623:0, 0, v1625:0, v1626:0, v1636:0, 1, 1 + v1829:0, v1829:0, v2146:0, v1627:0, v1829:0, 1 + v1829:0, 1 + v2146:0, v1637:0, v1638:0, v1639:0, v1640:0, v1641:0, v1642:0, v1643:0, 3, 7, 10000, 2, 9999, 9997, 9996, 4, 8) :|: v1636:0 > 0 && v1636:0 < 9999 && v1636:0 < 1 + v2146:0 && v2146:0 > 0 && v1634:0 > 2 && v1829:0 < 9997 && v1626:0 > 2 && v1625:0 > 1 && v2146:0 < 9999 66.80/20.71 Filtered unneeded arguments: 66.80/20.71 f_785(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) -> f_785(x10, x11, x16, x19, x20, x21) 66.80/20.71 f_915(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) -> f_915(x10, x11, x12, x16, x19, x20) 66.80/20.71 Removed division, modulo operations, cleaned up constraints. Obtained 4 rules.P rules: 66.80/20.71 f_785(v1625:0, v1626:0, v1631:0, v1634:0, sum~cons_1~v1829:0, v1636:0) -> f_785(v1625:0, v1626:0, v1631:0, v1634:0, v1829:0, v1829:0 + v1636:0) :|: v1636:0 >= v1631:0 && v1636:0 > 0 && sum~cons_1~v1829:0 = 1 + v1829:0 66.80/20.71 f_915(v2623:0, v2624:0, v2625:0, v2625:01, v2632:0, v2629:0) -> f_785(v2623:0, v2624:0, v2625:0, v2629:0, v2632:0, v2632:0 + v2625:0) :|: TRUE && v2625:0 = v2625:01 66.80/20.71 f_915(v2623:0, v2624:0, v2625:0, sum~cons_1~v2749:0, v2632:0, v2629:0) -> f_915(v2623:0, v2624:0, v2625:0, v2749:0, 1 + v2632:0, 1 + v2749:0) :|: v2625:0 < 1 + v2749:0 && v2625:0 < 9999 && v2749:0 > 0 && v2629:0 > 2 && v2624:0 > 2 && v2749:0 < 9999 && v2623:0 > 2 && sum~cons_1~v2749:0 = 1 + v2749:0 66.80/20.71 f_785(v1625:0, v1626:0, sum~cons_1~v2146:0, v1634:0, sum~cons_1~v1829:0, v1636:0) -> f_915(v1625:0, v1626:0, v1636:0, v2146:0, 1 + v1829:0, 1 + v2146:0) :|: v1636:0 < 9999 && v1636:0 > 0 && v1636:0 < 1 + v2146:0 && v2146:0 > 0 && v1634:0 > 2 && v1829:0 < 9997 && v1626:0 > 2 && v2146:0 < 9999 && v1625:0 > 1 && sum~cons_1~v2146:0 = 1 + v2146:0 && sum~cons_1~v1829:0 = 1 + v1829:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (9) 66.80/20.71 Obligation: 66.80/20.71 Rules: 66.80/20.71 f_785(v1625:0, v1626:0, v1631:0, v1634:0, sum~cons_1~v1829:0, v1636:0) -> f_785(v1625:0, v1626:0, v1631:0, v1634:0, v1829:0, v1829:0 + v1636:0) :|: v1636:0 >= v1631:0 && v1636:0 > 0 && sum~cons_1~v1829:0 = 1 + v1829:0 66.80/20.71 f_915(v2623:0, v2624:0, v2625:0, v2625:01, v2632:0, v2629:0) -> f_785(v2623:0, v2624:0, v2625:0, v2629:0, v2632:0, v2632:0 + v2625:0) :|: TRUE && v2625:0 = v2625:01 66.80/20.71 f_915(x, x1, x2, x3, x4, x5) -> f_915(x, x1, x2, x6, 1 + x4, 1 + x6) :|: x2 < 1 + x6 && x2 < 9999 && x6 > 0 && x5 > 2 && x1 > 2 && x6 < 9999 && x > 2 && x3 = 1 + x6 66.80/20.71 f_785(x7, x8, x9, x10, x11, x12) -> f_915(x7, x8, x12, x13, 1 + x14, 1 + x13) :|: x12 < 9999 && x12 > 0 && x12 < 1 + x13 && x13 > 0 && x10 > 2 && x14 < 9997 && x8 > 2 && x13 < 9999 && x7 > 1 && x9 = 1 + x13 && x11 = 1 + x14 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (10) IRS2T2 (EQUIVALENT) 66.80/20.71 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 66.80/20.71 66.80/20.71 (f_785_6,1) 66.80/20.71 (f_915_6,2) 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (11) 66.80/20.71 Obligation: 66.80/20.71 START: 0; 66.80/20.71 66.80/20.71 FROM: 0; 66.80/20.71 TO: 1; 66.80/20.71 66.80/20.71 FROM: 0; 66.80/20.71 TO: 2; 66.80/20.71 66.80/20.71 FROM: 1; 66.80/20.71 oldX0 := x0; 66.80/20.71 oldX1 := x1; 66.80/20.71 oldX2 := x2; 66.80/20.71 oldX3 := x3; 66.80/20.71 oldX4 := x4; 66.80/20.71 oldX5 := x5; 66.80/20.71 oldX6 := oldX4 - 1; 66.80/20.71 assume(oldX5 >= oldX2 && oldX5 > 0 && oldX4 = 1 + oldX6); 66.80/20.71 x0 := oldX0; 66.80/20.71 x1 := oldX1; 66.80/20.71 x2 := oldX2; 66.80/20.71 x3 := oldX3; 66.80/20.71 x4 := oldX4 - 1; 66.80/20.71 x5 := oldX6 + oldX5; 66.80/20.71 TO: 1; 66.80/20.71 66.80/20.71 FROM: 2; 66.80/20.71 oldX0 := x0; 66.80/20.71 oldX1 := x1; 66.80/20.71 oldX2 := x2; 66.80/20.71 oldX3 := x3; 66.80/20.71 oldX4 := x4; 66.80/20.71 oldX5 := x5; 66.80/20.71 assume(0 = 0 && oldX2 = oldX3); 66.80/20.71 x0 := oldX0; 66.80/20.71 x1 := oldX1; 66.80/20.71 x2 := oldX2; 66.80/20.71 x3 := oldX5; 66.80/20.71 x4 := oldX4; 66.80/20.71 x5 := oldX4 + oldX2; 66.80/20.71 TO: 1; 66.80/20.71 66.80/20.71 FROM: 2; 66.80/20.71 oldX0 := x0; 66.80/20.71 oldX1 := x1; 66.80/20.71 oldX2 := x2; 66.80/20.71 oldX3 := x3; 66.80/20.71 oldX4 := x4; 66.80/20.71 oldX5 := x5; 66.80/20.71 oldX6 := oldX3 - 1; 66.80/20.71 assume(oldX2 < 1 + oldX6 && oldX2 < 9999 && oldX6 > 0 && oldX5 > 2 && oldX1 > 2 && oldX6 < 9999 && oldX0 > 2 && oldX3 = 1 + oldX6); 66.80/20.71 x0 := oldX0; 66.80/20.71 x1 := oldX1; 66.80/20.71 x2 := oldX2; 66.80/20.71 x3 := oldX3 - 1; 66.80/20.71 x4 := 1 + oldX4; 66.80/20.71 x5 := 1 + oldX6; 66.80/20.71 TO: 2; 66.80/20.71 66.80/20.71 FROM: 1; 66.80/20.71 oldX0 := x0; 66.80/20.71 oldX1 := x1; 66.80/20.71 oldX2 := x2; 66.80/20.71 oldX3 := x3; 66.80/20.71 oldX4 := x4; 66.80/20.71 oldX5 := x5; 66.80/20.71 oldX6 := oldX2 - 1; 66.80/20.71 oldX7 := oldX4 - 1; 66.80/20.71 assume(oldX5 < 9999 && oldX5 > 0 && oldX5 < 1 + oldX6 && oldX6 > 0 && oldX3 > 2 && oldX7 < 9997 && oldX1 > 2 && oldX6 < 9999 && oldX0 > 1 && oldX2 = 1 + oldX6 && oldX4 = 1 + oldX7); 66.80/20.71 x0 := oldX0; 66.80/20.71 x1 := oldX1; 66.80/20.71 x2 := oldX5; 66.80/20.71 x3 := oldX2 - 1; 66.80/20.71 x4 := 1 + oldX7; 66.80/20.71 x5 := 1 + oldX6; 66.80/20.71 TO: 2; 66.80/20.71 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (12) T2 (EQUIVALENT) 66.80/20.71 Initially, performed program simplifications using lexicographic rank functions: 66.80/20.71 * Removed transitions 6, 14, 17, 18 using the following rank functions: 66.80/20.71 - Rank function 1: 66.80/20.71 RF for loc. 6: -2+3*x2 66.80/20.71 RF for loc. 7: 3*x3 66.80/20.71 RF for loc. 8: -2+3*x2 66.80/20.71 RF for loc. 12: -1+3*x3 66.80/20.71 Bound for (chained) transitions 18: 5 66.80/20.71 - Rank function 2: 66.80/20.71 RF for loc. 6: -1+3*x2 66.80/20.71 RF for loc. 7: 1+x2+2*x3 66.80/20.71 RF for loc. 8: -1+3*x2 66.80/20.71 RF for loc. 12: x2+2*x3 66.80/20.71 Bound for (chained) transitions 6: 5 66.80/20.71 - Rank function 3: 66.80/20.71 RF for loc. 6: 0 66.80/20.71 RF for loc. 7: 2 66.80/20.71 RF for loc. 8: 0 66.80/20.71 RF for loc. 12: 1 66.80/20.71 Bound for (chained) transitions 14: 2 66.80/20.71 - Rank function 4: 66.80/20.71 RF for loc. 6: 0 66.80/20.71 RF for loc. 8: 0 66.80/20.71 RF for loc. 12: 1 66.80/20.71 Bound for (chained) transitions 17: 1 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (13) 66.80/20.71 YES 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (14) 66.80/20.71 Obligation: 66.80/20.71 SCC 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (15) SCC2IRS (SOUND) 66.80/20.71 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 66.80/20.71 Generated rules. Obtained 26 rulesP rules: 66.80/20.71 f_656(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1031, 1, v1033, v1034, v1035, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_658(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_658(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_660(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 1 <= v1035 66.80/20.71 f_660(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_664(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_664(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_668(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: TRUE 66.80/20.71 f_668(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_672(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_672(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1033, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_676(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 0 = 0 66.80/20.71 f_676(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_680(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 1 + v1134 = v1034 && v1134 <= 9998 66.80/20.71 f_680(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_684(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: TRUE 66.80/20.71 f_684(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_687(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: TRUE 66.80/20.71 f_687(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_690(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_690(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_693(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_693(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_696(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_696(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_700(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_700(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_703(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: v1030 <= v1035 66.80/20.71 f_703(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_706(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_706(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_710(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: TRUE 66.80/20.71 f_710(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_714(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_714(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_718(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_718(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_722(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_722(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1031, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_726(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_726(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_730(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: v1303 = v1134 + v1035 66.80/20.71 f_730(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_733(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: 0 = 0 66.80/20.71 f_733(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_736(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: TRUE 66.80/20.71 f_736(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_739(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) :|: TRUE 66.80/20.71 f_739(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8, 9998) -> f_654(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1035, 1, v1034, v1134, v1303, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: TRUE 66.80/20.71 f_654(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1031, 1, v1033, v1034, v1035, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) -> f_656(v1020, v1021, v1022, v1023, v1024, v1025, v1026, v1027, 0, v1029, v1030, v1031, 1, v1033, v1034, v1035, v1036, v1037, v1038, v1039, v1040, v1041, v1042, 3, 7, 10000, 9999, 4, 8) :|: 0 = 0 66.80/20.71 Combined rules. Obtained 1 rulesP rules: 66.80/20.71 f_656(v1020:0, v1021:0, v1022:0, v1023:0, v1024:0, v1025:0, v1026:0, v1027:0, 0, v1029:0, v1030:0, v1031:0, 1, v1033:0, 1 + v1134:0, v1035:0, v1036:0, v1037:0, v1038:0, v1039:0, v1040:0, v1041:0, v1042:0, 3, 7, 10000, 9999, 4, 8) -> f_656(v1020:0, v1021:0, v1022:0, v1023:0, v1024:0, v1025:0, v1026:0, v1027:0, 0, v1029:0, v1030:0, v1035:0, 1, 1 + v1134:0, v1134:0, v1134:0 + v1035:0, v1036:0, v1037:0, v1038:0, v1039:0, v1040:0, v1041:0, v1042:0, 3, 7, 10000, 9999, 4, 8) :|: v1035:0 > 0 && v1035:0 >= v1030:0 && v1134:0 < 9999 66.80/20.71 Filtered unneeded arguments: 66.80/20.71 f_656(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) -> f_656(x11, x15, x16) 66.80/20.71 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 66.80/20.71 f_656(v1030:0, sum~cons_1~v1134:0, v1035:0) -> f_656(v1030:0, v1134:0, v1134:0 + v1035:0) :|: v1035:0 >= v1030:0 && v1134:0 < 9999 && v1035:0 > 0 && sum~cons_1~v1134:0 = 1 + v1134:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (16) 66.80/20.71 Obligation: 66.80/20.71 Rules: 66.80/20.71 f_656(v1030:0, sum~cons_1~v1134:0, v1035:0) -> f_656(v1030:0, v1134:0, v1134:0 + v1035:0) :|: v1035:0 >= v1030:0 && v1134:0 < 9999 && v1035:0 > 0 && sum~cons_1~v1134:0 = 1 + v1134:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (17) IRS2T2 (EQUIVALENT) 66.80/20.71 Transformed input IRS into an integer transition system.Used the following mapping from defined symbols to location IDs: 66.80/20.71 66.80/20.71 (f_656_3,1) 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (18) 66.80/20.71 Obligation: 66.80/20.71 START: 0; 66.80/20.71 66.80/20.71 FROM: 0; 66.80/20.71 TO: 1; 66.80/20.71 66.80/20.71 FROM: 1; 66.80/20.71 oldX0 := x0; 66.80/20.71 oldX1 := x1; 66.80/20.71 oldX2 := x2; 66.80/20.71 oldX3 := oldX1 - 1; 66.80/20.71 assume(oldX2 >= oldX0 && oldX3 < 9999 && oldX2 > 0 && oldX1 = 1 + oldX3); 66.80/20.71 x0 := oldX0; 66.80/20.71 x1 := oldX1 - 1; 66.80/20.71 x2 := oldX3 + oldX2; 66.80/20.71 TO: 1; 66.80/20.71 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (19) T2 (EQUIVALENT) 66.80/20.71 No proof given by T2 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (20) 66.80/20.71 YES 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (21) 66.80/20.71 Obligation: 66.80/20.71 SCC 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (22) SCC2IRS (SOUND) 66.80/20.71 Transformed LLVM symbolic execution graph SCC into a rewrite problem. Log: 66.80/20.71 Generated rules. Obtained 17 rulesP rules: 66.80/20.71 f_479(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_483(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: 0 = 0 66.80/20.71 f_483(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_485(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: 0 = 0 66.80/20.71 f_485(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_487(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: 0 = 0 66.80/20.71 f_487(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_490(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: v394 < v401 && v394 <= 9998 && 2 <= v401 && 3 <= v398 && 3 <= v395 66.80/20.71 f_490(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_494(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 0 = 0 66.80/20.71 f_494(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_498(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: TRUE 66.80/20.71 f_498(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_502(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 0 = 0 66.80/20.71 f_502(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v399, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_506(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 0 = 0 66.80/20.71 f_506(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_510(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: v488 = 1 + v400 && 0 <= 9999 + v488 66.80/20.71 f_510(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_513(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: TRUE 66.80/20.71 f_513(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_516(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 0 = 0 66.80/20.71 f_516(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v398, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_519(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 0 = 0 66.80/20.71 f_519(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_522(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: 1 + v501 = v401 && 1 <= v501 && v501 <= 9998 66.80/20.71 f_522(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_525(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: TRUE 66.80/20.71 f_525(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_528(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) :|: TRUE 66.80/20.71 f_528(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9998, 10001, 9999, 2, 4, 8) -> f_476(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v401, v400, v488, v501, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: TRUE 66.80/20.71 f_476(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_479(v385, v386, v387, v388, v389, v390, v391, v392, 0, v394, v395, 1, v397, v398, v399, v400, v401, v402, v403, v404, v405, v406, v407, v408, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: 0 = 0 66.80/20.71 Combined rules. Obtained 1 rulesP rules: 66.80/20.71 f_479(v385:0, v386:0, v387:0, v388:0, v389:0, v390:0, v391:0, v392:0, 0, v394:0, v395:0, 1, v397:0, v398:0, v399:0, v400:0, 1 + v501:0, v402:0, v403:0, v404:0, v405:0, v406:0, v407:0, v408:0, 3, 7, 10000, 9999, 2, 10001, 4, 8) -> f_479(v385:0, v386:0, v387:0, v388:0, v389:0, v390:0, v391:0, v392:0, 0, v394:0, v395:0, 1, v397:0, 1 + v501:0, v400:0, 1 + v400:0, v501:0, v402:0, v403:0, v404:0, v405:0, v406:0, v407:0, v408:0, 3, 7, 10000, 9999, 2, 10001, 4, 8) :|: v394:0 < 9999 && v394:0 < 1 + v501:0 && v501:0 > 0 && v398:0 > 2 && v395:0 > 2 && v400:0 > -10001 && v501:0 < 9999 66.80/20.71 Filtered unneeded arguments: 66.80/20.71 f_479(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) -> f_479(x10, x11, x14, x16, x17) 66.80/20.71 Removed division, modulo operations, cleaned up constraints. Obtained 1 rules.P rules: 66.80/20.71 f_479(v394:0, v395:0, v398:0, v400:0, sum~cons_1~v501:0) -> f_479(v394:0, v395:0, 1 + v501:0, 1 + v400:0, v501:0) :|: v394:0 < 1 + v501:0 && v394:0 < 9999 && v501:0 > 0 && v398:0 > 2 && v395:0 > 2 && v501:0 < 9999 && v400:0 > -10001 && sum~cons_1~v501:0 = 1 + v501:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (23) 66.80/20.71 Obligation: 66.80/20.71 Rules: 66.80/20.71 f_479(v394:0, v395:0, v398:0, v400:0, sum~cons_1~v501:0) -> f_479(v394:0, v395:0, 1 + v501:0, 1 + v400:0, v501:0) :|: v394:0 < 1 + v501:0 && v394:0 < 9999 && v501:0 > 0 && v398:0 > 2 && v395:0 > 2 && v501:0 < 9999 && v400:0 > -10001 && sum~cons_1~v501:0 = 1 + v501:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (24) IntTRSCompressionProof (EQUIVALENT) 66.80/20.71 Compressed rules. 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (25) 66.80/20.71 Obligation: 66.80/20.71 Rules: 66.80/20.71 f_479(v394:0:0, v395:0:0, v398:0:0, v400:0:0, sum~cons_1~v501:0:0) -> f_479(v394:0:0, v395:0:0, 1 + v501:0:0, 1 + v400:0:0, v501:0:0) :|: v501:0:0 < 9999 && v400:0:0 > -10001 && v395:0:0 > 2 && v398:0:0 > 2 && v501:0:0 > 0 && v394:0:0 < 9999 && v394:0:0 < 1 + v501:0:0 && sum~cons_1~v501:0:0 = 1 + v501:0:0 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (26) RankingReductionPairProof (EQUIVALENT) 66.80/20.71 Interpretation: 66.80/20.71 [ f_479 ] = f_479_5 66.80/20.71 66.80/20.71 The following rules are decreasing: 66.80/20.71 f_479(v394:0:0, v395:0:0, v398:0:0, v400:0:0, sum~cons_1~v501:0:0) -> f_479(v394:0:0, v395:0:0, 1 + v501:0:0, 1 + v400:0:0, v501:0:0) :|: v501:0:0 < 9999 && v400:0:0 > -10001 && v395:0:0 > 2 && v398:0:0 > 2 && v501:0:0 > 0 && v394:0:0 < 9999 && v394:0:0 < 1 + v501:0:0 && sum~cons_1~v501:0:0 = 1 + v501:0:0 66.80/20.71 66.80/20.71 The following rules are bounded: 66.80/20.71 f_479(v394:0:0, v395:0:0, v398:0:0, v400:0:0, sum~cons_1~v501:0:0) -> f_479(v394:0:0, v395:0:0, 1 + v501:0:0, 1 + v400:0:0, v501:0:0) :|: v501:0:0 < 9999 && v400:0:0 > -10001 && v395:0:0 > 2 && v398:0:0 > 2 && v501:0:0 > 0 && v394:0:0 < 9999 && v394:0:0 < 1 + v501:0:0 && sum~cons_1~v501:0:0 = 1 + v501:0:0 66.80/20.71 66.80/20.71 66.80/20.71 ---------------------------------------- 66.80/20.71 66.80/20.71 (27) 66.80/20.71 YES 67.02/20.81 EOF