-
Notifications
You must be signed in to change notification settings - Fork 90
/
Copy pathbmc-concurrency.properties
48 lines (35 loc) · 1.68 KB
/
bmc-concurrency.properties
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# This file is part of CPAchecker,
# a tool for configurable software verification:
# https://cpachecker.sosy-lab.org
#
# SPDX-FileCopyrightText: 2007-2020 Dirk Beyer <https://www.sosy-lab.org>
#
# SPDX-License-Identifier: Apache-2.0
// ----------------------------------------------------------------------
// This configuration file enables BMC for verifying multi-threaded programs.
// ----------------------------------------------------------------------
#include includes/bmc.properties
#include includes/concurrency.properties
specification = specification/default.spc
#include includes/resource-limits.properties
CompositeCPA.cpas = cpa.threading.ThreadingCPA, \
cpa.predicate.PredicateCPA, \
cpa.assumptions.storage.AssumptionStorageCPA, \
cpa.loopbound.LoopBoundCPA, \
cpa.value.ValueAnalysisCPA
analysis.traversal.order = bfs
analysis.traversal.useReversePostorder = false
analysis.traversal.useCallstack = false
analysis.traversal.useReverseLoopstack = false
analysis.traversal.useReverseLoopIterationCount = false
# Number of threads should be irrelevant, but have a huge impact on performance.
analysis.traversal.useNumberOfThreads = false
# prevent the stop-operator from aborting the stop-check early when it crosses a target state
cpa.arg.coverTargetStates = false
# the loop unrolling bound
cpa.loopbound.maxLoopIterations = 10
# enable stack-based tracking of loops
cpa.loopbound.trackStack = false
# Use merge^{JOIN} for value analysis alongside predicate to prevent unnecessary unrolling
cpa.value.merge = JOIN
counterexample.export.allowImpreciseCounterexamples=true