Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
8a7e125
IcfgToChcConcurrent: some documentation and minor refactoring
maul-esel Apr 1, 2023
ce90413
begin (very hacky) support for sleep sets in Horn clauses
maul-esel Apr 4, 2023
f9675a1
add common interface for variables specific to a thread instance
maul-esel Apr 4, 2023
ddc58b6
more simplification with ThreadInstance
maul-esel Apr 4, 2023
7d637c5
new implementation of Horn clause generation for thread-modular proofs
maul-esel Apr 5, 2023
db0f9e5
fix Horn clauses with non-false head
maul-esel Apr 5, 2023
053b755
add support for variables not tied to a specific predicate and index
maul-esel Apr 5, 2023
10f4bfc
fix location constraint
maul-esel Apr 5, 2023
83e5dca
refactor ChcProviderConcurrentWithLbe: create new ICFG, use existing …
maul-esel Apr 5, 2023
5b7e3f0
add mode and level parameters to ChcProviderConcurrent
maul-esel Apr 5, 2023
a50b4e5
add BidirectionalMap::merge (allows to be used in stream collectors)
maul-esel Apr 11, 2023
e450ef4
HcSymbolTable fix copy-paste error
maul-esel Apr 11, 2023
366c858
continue refactoring
maul-esel Apr 11, 2023
3a232af
make sleep set vars boolean
maul-esel Apr 11, 2023
1056ed1
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Apr 18, 2023
eb16dfe
IcfgToChc: add preferences
maul-esel Apr 18, 2023
77aeaca
extract ConcurrencyMode functionality
maul-esel Apr 18, 2023
b6359ad
refactor Horn clause generation
maul-esel Apr 18, 2023
dc6408f
remove obsolete code
maul-esel Apr 18, 2023
f510f23
add missing license header
maul-esel Apr 18, 2023
247528e
implement support for pre-/postconditions
maul-esel Apr 19, 2023
f10639e
separate ability to specify preconditions from spec mode
maul-esel Apr 20, 2023
3cf5dbc
IHcReplacementVar: consistently give Script not Sort
maul-esel May 8, 2023
bc239dc
add interface for finite-valued variables, and implement for HcSleepVar
maul-esel May 8, 2023
0493755
PredicateInfo: drop bidirectional map, simplify code
maul-esel May 8, 2023
1a5620f
add small optimization: drop Horn clauses with constraint false
maul-esel May 8, 2023
95355cc
add predicate families, to prepare support for different encodings
maul-esel May 9, 2023
a7f57b1
add settings for future encoding variants
maul-esel May 9, 2023
85aa4c4
add setting for different preference order encoding
maul-esel May 9, 2023
4114dde
IHcThreadSpecificVar: add forInstance method
maul-esel May 10, 2023
65b7c63
fix IcfgToChc preferences, output more detailed error in the future
maul-esel May 10, 2023
721589e
another fix for settings code
maul-esel May 10, 2023
9aa0c92
HcSleepVar: properly implement forInstance
maul-esel May 10, 2023
c78c7c0
SleepSetThreadModularProofs: properly implement symmetry breaking
maul-esel May 10, 2023
6552ec7
SleepSetThreadModular w/o symmetry-breaking: simplify code slightly
maul-esel May 10, 2023
7e3d4fa
fix transition constraints for local variables
maul-esel May 17, 2023
611e7b9
add alternative assert encoding
maul-esel May 17, 2023
eff6fbf
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel May 20, 2023
5535543
Fix NPE
schuessf May 23, 2023
3568919
Fix NPE properly
schuessf May 23, 2023
0e06dcb
add some comments
maul-esel May 24, 2023
71759d3
create new package for POR-related classes
maul-esel May 24, 2023
bb52355
add auxiliary method for skippable asserts
maul-esel May 24, 2023
07ae11c
fix handling of local variables
maul-esel May 24, 2023
da5fb75
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel May 24, 2023
352794a
readable toString for dummy edges (to help debugging)
maul-esel May 25, 2023
6a47de5
SemanticIndependenceConditionGenerator: also output raw terms
maul-esel May 25, 2023
6c22120
add SemanticIndependenceConditionGenerator::isSymmetric
maul-esel May 25, 2023
81cfd05
HcSymbolTable: add missing mapping of head variables
maul-esel May 25, 2023
f838715
add support for conditional independence (with precomputed commutativ…
maul-esel May 25, 2023
e388a02
minor preference cleanup: put sleep set settings in container
maul-esel May 25, 2023
ef5fd25
move CHC categorization to its own class
maul-esel May 25, 2023
3b0b011
simpler postcondition encoding: only one thread counter
maul-esel May 25, 2023
9a82c70
implement support for different preference orders
maul-esel May 25, 2023
23ac64f
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel May 25, 2023
d18db27
ChcSmtPrinter: use configured file name as prefix for automatic naming
maul-esel May 25, 2023
9bb4800
IndependenceChecker: properly substitute global variables
maul-esel May 25, 2023
b12de36
better checking of CHCs
maul-esel May 25, 2023
bf2c225
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel May 25, 2023
621497e
fix copy-paste error
maul-esel May 26, 2023
fe2097d
add setting to allow semi-commutativity (default: true)
maul-esel May 26, 2023
d5022d5
prepare evaluation
maul-esel May 31, 2023
cab6167
fix usage of benchexec variables
maul-esel May 31, 2023
b79fc11
add golem during build
maul-esel May 31, 2023
30509f9
TreeAutomizer: must not use Z3 (no longer supports interpolation)
maul-esel May 31, 2023
645efe7
temporarily disable check that crashes UniHorn
maul-esel May 31, 2023
4f2efde
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Jun 6, 2023
ff2fe87
improve Z3 CHC integration
maul-esel Jun 6, 2023
1f01ed6
SmtChcScript: avoid push/pop
maul-esel Jun 7, 2023
27c56ed
fix typos in method names
maul-esel Jun 8, 2023
7dddfbb
bugfix: record HcBodyVar for each term variable
maul-esel Jun 8, 2023
15814dd
construct HcHeadVars that reference the proper predicate and index
maul-esel Jun 8, 2023
dca59fe
eldarica: properly handle scala objects
maul-esel Jun 8, 2023
7573845
fix SMT solver setting: TreeAutomizer ignores its own settings
maul-esel Jun 8, 2023
a13f12b
add an IChcScript to invoke eldarica via command line
maul-esel Jun 9, 2023
968a270
log model if found
maul-esel Jun 9, 2023
011ae38
ChcTransferrer: fix resolution of head variables
maul-esel Jun 9, 2023
d2af6b7
ChcTransferrer: implement transferBack(Model)
maul-esel Jun 9, 2023
3a8dd60
prepare more extensive evaluation
maul-esel Jun 12, 2023
bc7f6ac
ChcTransferrer: fix model backtranslation
maul-esel Jun 13, 2023
e6bf6e3
ApproximateLockstepPreferenceOrder: do not confuse locations with the…
maul-esel Jun 15, 2023
e9a7c2e
fix implementation of thread-modular preference orders
maul-esel Jun 15, 2023
66e461b
add setting for SKIP_ASSERTION_EDGES
maul-esel Jun 16, 2023
806d74d
ensure models are in Ultimate normal form
maul-esel Jun 16, 2023
90a251a
temporarily (for evaluation) avoid let terms in models
maul-esel Jun 16, 2023
f271ee5
SmtChcScript: transfer models to the proper script
maul-esel Jun 16, 2023
c8ff3af
throw error for joins even without -ea
maul-esel Jun 21, 2023
78f4435
parametric programs: support multiple templates and single-instance t…
maul-esel Jun 22, 2023
a63ceb3
fix pre/post detection for multiple templates
maul-esel Jun 22, 2023
c5b3d18
skip error locations if "skip assert edges" enabled
maul-esel Jun 24, 2023
ccadede
properly filter error locs from CHC system
maul-esel Jun 28, 2023
fa7c491
fix order for semicommutativity
maul-esel Jun 28, 2023
1b43378
more work on pre/post for parametric programs
maul-esel Jun 28, 2023
74fdd48
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Jun 29, 2023
5ab1b01
temporarily hardcode some conditions for eval purposes
maul-esel Jul 3, 2023
436ddf1
remove unused variable
maul-esel Jul 22, 2023
98c31e4
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Sep 8, 2023
25ec55f
mark unimplemented settings
maul-esel Sep 8, 2023
7112670
small settings cleanup
maul-esel Sep 11, 2023
4561965
add setting for symmetry clauses
maul-esel Sep 11, 2023
dcd3a62
prepare evaluation with symmetry clauses
maul-esel Sep 11, 2023
b633ca1
fix NullPointerException for clause without constraint
maul-esel Sep 12, 2023
6de61bb
HornClause: remove unused ManagedScript parameter
maul-esel Sep 12, 2023
dd9be67
prepare evaluation
maul-esel Sep 12, 2023
4130816
prepare evaluation of yet-unsolved tasks
maul-esel Sep 13, 2023
f799994
ChcSolver: support passing predicate hints to eldarica
maul-esel Sep 14, 2023
d7d68cd
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Dec 11, 2024
2ffed63
add test suite for thread-modular proofs with sleep set reduction
maul-esel Dec 11, 2024
9d47071
switch to new ISymbolicIndependenceRelation
maul-esel Dec 12, 2024
a0c725d
IndependenceChecker: decouple from HornClauseBuilder
maul-esel Dec 12, 2024
a1d3017
fix assert failure for clauses without head (safety clauses)
maul-esel Dec 12, 2024
e5f34f8
fix bug with unknown variables in predicate factory
maul-esel Dec 12, 2024
921d0ad
remove hardcoded commutativity conditions (reverts 5ab1b01)
maul-esel Dec 12, 2024
21e81a6
SleepThreadModularChcTestSuite: specify solver in task definition
maul-esel Dec 12, 2024
4aa7bf4
remove some redundant tests, fix expected timeout
maul-esel Dec 13, 2024
019bfb4
add setting for nondeterministic sleep updates
maul-esel Dec 19, 2024
07d3146
prepare evaluation
maul-esel Dec 19, 2024
2d603c6
fix path
maul-esel Dec 19, 2024
3f1e3e5
fix benchmark file: command line parameters
maul-esel Dec 30, 2024
85b1de3
undo temporary debugging changes
maul-esel Jan 3, 2025
52675bb
remove EldaricaChcScript and related classes (for now)
maul-esel Jan 7, 2025
ca714d1
improvements to IHcReplacementVar implementations
maul-esel Jan 7, 2025
972bd96
add missing benchmark rundefinitions
maul-esel Jan 8, 2025
0420e02
Merge branch 'dev' into wip/dk/sleep-threadmodular
maul-esel Sep 21, 2025
bf310b5
CC fixes
maul-esel Sep 21, 2025
989e44b
update to golem 0.9.0
maul-esel Sep 25, 2025
72b06cc
IcfgToChcPreferenceInitializer: make sleep set reduction opt-in
maul-esel Sep 26, 2025
5ceebed
new file structure for SleepThreadModularChcTestSuite and benchexec r…
maul-esel Sep 26, 2025
85622d5
parameterized program task definitions: fix relative paths
maul-esel Sep 26, 2025
7bbc8f6
ThreadModularHornClauseProvider: fix symmetry-clause implementation
maul-esel Sep 28, 2025
31bf9c9
fix rundefinition: inconsistent parameter sets for some backends
maul-esel Sep 28, 2025
1195727
correct wording in settings description
maul-esel Sep 28, 2025
7805ab0
add tests for nondet-sleep
maul-esel Sep 28, 2025
935711a
ChcSolver: add option to dump solution as eldarica hints
maul-esel Sep 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ trunk/examples/concurrent/bpl/VMCAI2021/generated/*.yml
trunk/examples/concurrent/bpl/weaver-benchmarks/generated/**/*.bpl
trunk/examples/concurrent/bpl/weaver-benchmarks/generated/**/*.yml
trunk/examples/concurrent/bpl/weaver-benchmarks/weaver
trunk/examples/concurrent/bpl/parameterized/*/CHC*.smt2
trunk/examples/witness-generation-validation/regression/*.graphml
trunk/examples/witness-generation-validation/regression/*.yaml
trunk/examples/witness-generation-validation/regression/*.yml
Expand Down
Binary file modified releaseScripts/default/adds/golem
Binary file not shown.
246 changes: 246 additions & 0 deletions releaseScripts/default/benchexec/sleep-threadmodular.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<benchmark tool="ultimateautomizer" memlimit="22GB" timelimit="7200" hardtimelimit="7220" cpuCores="2">
<resultfiles>${taskdef_path}/CHC_*.smt2</resultfiles>

<option name="--force-no-wrapper" />

<rundefinition name="SleepExplicit.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepExplicit.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepExplicit.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<?ignore
<rundefinition name="SleepExplicit.TreeAutomizer">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--chcsolver.chc.solver.backend">TREEAUTOMIZER</option>
<option name="--rcfgbuilder.smt.solver">Internal_SMTInterpol</option>
</rundefinition>
?>

<rundefinition name="SleepExplicit.NondetSleep.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepExplicit.NondetSleep.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepExplicit.NondetSleep.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<rundefinition name="SleepExplicit.NondetSleep.NecSufComm.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepExplicit.NondetSleep.NecSufComm.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepExplicit.NondetSleep.NecSufComm.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.use.nondeterministic.sleep.update.encoding">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<rundefinition name="SleepExplicit.NecSufComm.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepExplicit.NecSufComm.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepExplicit.NecSufComm.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">true</option>
<option name="--icfgtochc.conditional.independence">NECESSARY_AND_SUFFICIENT</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<rundefinition name="SleepSymbolic.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepSymbolic.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepSymbolic.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<?ignore
<rundefinition name="SleepSymbolic.TreeAutomizer">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--chcsolver.chc.solver.backend">TREEAUTOMIZER</option>
<option name="--rcfgbuilder.smt.solver">Internal_SMTInterpol</option>
</rundefinition>
?>

<rundefinition name="SleepSymbolic-Symmetry.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="SleepSymbolic-Symmetry.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="SleepSymbolic-Symmetry.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<?ignore
<rundefinition name="SleepSymbolic-Symmetry.TreeAutomizer">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">true</option>
<option name="--icfgtochc.break.symmetry.of.preference.order">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">TREEAUTOMIZER</option>
<option name="--rcfgbuilder.smt.solver">Internal_SMTInterpol</option>
</rundefinition>
?>

<rundefinition name="NoSleep.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="NoSleep.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="NoSleep.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<?ignore
<rundefinition name="NoSleep.TreeAutomizer">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--chcsolver.chc.solver.backend">TREEAUTOMIZER</option>
<option name="--rcfgbuilder.smt.solver">Internal_SMTInterpol</option>
</rundefinition>
?>

<rundefinition name="NoSleep-Symmetry.Eldarica">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">ELDARICA</option>
</rundefinition>

<rundefinition name="NoSleep-Symmetry.Z3">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">Z3</option>
</rundefinition>

<rundefinition name="NoSleep-Symmetry.Golem">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularVerifier.xml</option>
<option name="--icfgtochc.enable.sleep.set.reduction">false</option>
<option name="--icfgtochc.use.symmetry.clauses">true</option>
<option name="--chcsolver.chc.solver.backend">GOLEM</option>
</rundefinition>

<?ignore
<rundefinition name="UniHorn">
<option name="-tc">../../../trunk/examples/concurrent/bpl/parameterized/ThreadModularUniHorn.xml</option>
</rundefinition>
?>

<tasks name="threadmodular-examples">
<include>../../../trunk/examples/concurrent/bpl/parameterized/*/*.yml</include>
<propertyfile>../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>

<option name="-s">${taskdef_path}/${taskdef_name}-settings.epf</option>
</tasks>

<tasks name="threadmodular-unsolved">
<includesfile>../../../trunk/examples/concurrent/bpl/parameterized/unsolved.set</includesfile>
<propertyfile>../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>

<option name="-s">${taskdef_path}/${taskdef_name}-settings.epf</option>
</tasks>
</benchmark>
2 changes: 1 addition & 1 deletion releaseScripts/default/makeZip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ if [ "$2" == "linux" ]; then
echo "Building .zip for linux..."
ARCH="linux"
ARCHPATH="products/CLI-E4/linux/gtk/x86_64"
ADDS+=("adds/z3" "adds/cvc4" "adds/mathsat" "adds/ltl2ba")
ADDS+=("adds/z3" "adds/cvc4" "adds/mathsat" "adds/ltl2ba" "adds/golem")
elif [ "$2" == "win32" ]; then
echo "Building .zip for win32..."
ARCH="win32"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#invalid
# needs ghost variables to distinguish case where other thread has set g:=1 but not yet incremented its z_i
omega:
"m.l0" : true
"m.l1" : (= g 0)
"t1.l0" : (and (= z1 1) (= g 0))
"t1.l1" : (and (= z1 2) (or (and (= g 0) (= z2 2)) (= g 1)))
"t1.l2" : (and (= z1 2) (= g 1) (= z2 2))
"t1.l3" : (and (= g 1) (or (and (= z1 3) (= z2 2)) (and (= z1 2) (= z2 3))))
"t2.l0" : (and (= z2 1) (= g 0))
"t2.l1" : (and (= z2 2) (or (and (= g 0) (= z1 2)) (and (= g 1) (= z1 3))))
"t2.l2" : (and (= z2 2) (= g 1) (= z1 2))
"t2.l3" : (and (= g 1) (or (and (= z1 2) (= z2 3)) (and (= z1 3) (= z2 2))))
"e" : false
ghost_variables:
ghost_updates:

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<rundefinition>
<name>Ultimate Toolchain</name>
<toolchain>
<plugin id="de.uni_freiburg.informatik.ultimate.boogie.preprocessor"/>
<plugin id="de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder"/>
<plugin id="de.uni_freiburg.informatik.ultimate.plugins.icfgtochc"/>
<plugin id="de.uni_freiburg.informatik.ultimate.chcprinter" />
<plugin id="de.uni_freiburg.informatik.ultimate.plugins.chcsolver"/>
</toolchain>
</rundefinition>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//#Safe

var x : int;

procedure ULTIMATE.start()
modifies x;
free requires x == 0;
free ensures x == 0;
{
var k : int;

havoc k;
x := x + k;
x := x - k;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
format_version: '2.0'

input_files: 'add-sub-k.bpl'

properties:
- property_file: ../../../../svcomp/properties/unreach-call.prp
expected_verdict: true

options:
language: Boogie
# settings_file: add-sub-k.yml-settings.epf

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#Thu May 25 14:24:13 CEST 2023


\!/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=

# Program model and specification
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Concurrency\ mode=PARAMETRIC
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Assume\ program\ has\ a\ precondition=true
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Specification\ mode=POSTCONDITION

# Thread modularity level
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Thread-Modular\ Proof\ Level=2

# Program-specific settings for sleep set reduction
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Conditional\ Independence=NONE
/instance/de.uni_freiburg.informatik.ultimate.plugins.icfgtochc/Preference\ order\ used\ for\ reduction=SEQ_COMP

@de.uni_freiburg.informatik.ultimate.plugins.icfgtochc=0.2.3
file_export_version=3.0


\!/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver=
/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ CHC\ model\ if\ query\ is\ SAT=false
/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ UNSAT\ core\ if\ query\ is\ UNSAT=false
/instance/de.uni_freiburg.informatik.ultimate.plugins.chcsolver/Produce\ derivation\ if\ query\ is\ UNSAT=false
@de.uni_freiburg.informatik.ultimate.plugins.chcsolver=0.2.3
file_export_version=3.0


\!/instance/de.uni_freiburg.informatik.ultimate.chcprinter=
/instance/de.uni_freiburg.informatik.ultimate.chcprinter/File\ name=CHC
/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Use\ automatic\ naming=true
/instance/de.uni_freiburg.informatik.ultimate.chcprinter/Save\ file\ in\ source\ directory=true
@de.uni_freiburg.informatik.ultimate.chcprinter=0.2.3
file_export_version=3.0


\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=
/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Add\ additional\ assume\ for\ each\ assert=false
/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement
@de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder=0.2.3
file_export_version=3.0


\!/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder=
/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder/Add\ additional\ assume\ for\ each\ assert=false
/instance/de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder/Size\ of\ a\ code\ block=OneNontrivialStatement
@de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder=0.2.3
file_export_version=3.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
format_version: '2.0'

input_files: '../add-sub-k.bpl'

properties:
- property_file: ../../../../../svcomp/properties/unreach-call.prp
expected_verdict: unsat

options:
language: Boogie

settings_file: ../add-sub-k.yml-settings.epf
timeout: 70 #seconds

de.uni_freiburg.informatik.ultimate.plugins.icfgtochc:
Enable sleep set reduction: false

de.uni_freiburg.informatik.ultimate.plugins.chcsolver:
CHC solver backend: GOLEM

Loading