Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
562 commits
Select commit Hold shift + click to select a range
25c271d
Unpetrifier: finish symbol table
maul-esel Jan 19, 2024
0828192
Add non-functional shorter places mapping
matthiaszumkeller Jan 19, 2024
ad34e47
Merge branch 'wip/dk/empire-owicki' of https://github.com/ultimate-pa…
matthiaszumkeller Jan 19, 2024
8a2ac86
Add second approach of places mapping construction behind boolean
matthiaszumkeller Jan 19, 2024
0a355c9
Add CrownConstruction approach which constructs KingdomLaw holding a …
matthiaszumkeller Jan 19, 2024
9d110df
Some refactoring in colonization to lower the number of accesses to o…
matthiaszumkeller Jan 21, 2024
9a20491
Small fix and optimization
matthiaszumkeller Jan 22, 2024
60b1c03
Add Set to store already seen Rooks
matthiaszumkeller Jan 22, 2024
7079a37
further work on unpetrification
maul-esel Jan 23, 2024
b4d408d
CrownConstruction: Immediately call crownConstruction on all settleme…
matthiaszumkeller Jan 24, 2024
dd25218
Merge branch 'wip/dk/empire-owicki' of https://github.com/ultimate-pa…
matthiaszumkeller Jan 24, 2024
c499686
updated benchexec files
maul-esel Jan 25, 2024
ea8ec8b
CrownConstruction: Store rejectedPairs as local variable instead of p…
matthiaszumkeller Jan 26, 2024
6a096ac
Some refactoring and removal of unused code
matthiaszumkeller Jan 26, 2024
247936d
OwickiGriesUnpetrifier: use proper symbol table for predicates
maul-esel Feb 9, 2024
656fd13
hacky integration of (naive) Owicki-Gries proofs in TraceAbstraction
maul-esel Feb 9, 2024
6d09d38
add missing classes
maul-esel Feb 9, 2024
3fe4847
unpetrify variables in Owicki-Gries invariants and ghost mirror updates
maul-esel Feb 9, 2024
d9a5a8a
hacky support for auxiliary variables in proofs (ghost variables)
maul-esel Feb 14, 2024
575ffb0
fix compilation error
maul-esel Feb 14, 2024
83b452d
add TODO
maul-esel Feb 14, 2024
50cfd79
Merge branch 'dev' into wip/dk/empire-owicki
maul-esel Feb 14, 2024
d925da4
add ghost variable workaround in CACSL2BoogieBacktranslator
maul-esel Feb 14, 2024
0b9f583
unpetrify ICFG locations
maul-esel Feb 14, 2024
b505a50
fix WitnessGhostDeclaration: allow multiple declarations
maul-esel Feb 14, 2024
cfc1b93
two fixes for ghost mirror variables
maul-esel Feb 20, 2024
80210a2
extended benchmark file
maul-esel Feb 25, 2024
2b1251b
Add some changes to also construct valid Empires for multiple proof a…
matthiaszumkeller May 1, 2024
3e14511
Add some test cases for different concurrent patterns
matthiaszumkeller May 1, 2024
3b264fb
Only add successor to territory if they are part of the same thread
matthiaszumkeller May 2, 2024
7ba8962
Add new EmpireValidityChecker that checks the current validity defini…
matthiaszumkeller May 8, 2024
2695038
Update enables function to new definition and some refactoring
matthiaszumkeller May 9, 2024
213becc
Add examples to test the algorithm
matthiaszumkeller Jun 3, 2024
95101ed
Add some handwritten empires for the examples
matthiaszumkeller Jun 4, 2024
0f6369b
Add some more empires and a test for a race between two threads
matthiaszumkeller Jun 5, 2024
f8da360
Add empire for thread-race
matthiaszumkeller Jun 5, 2024
eb21afa
Fix wrong accepting place in data-race
matthiaszumkeller Jun 5, 2024
e8ed844
Add client-server example with choices between different threads
matthiaszumkeller Jun 6, 2024
b978666
implement new structure of Owicki-Gries annotations
maul-esel Jun 7, 2024
cce4f3f
Add empire for client-server-choice
matthiaszumkeller Jun 11, 2024
c231221
Add simple test for multiple times reachable initial marking
matthiaszumkeller Jun 11, 2024
f5a40ff
Revert "Add empire for client-server-choice"
matthiaszumkeller Jun 11, 2024
c497a52
Revert "Add simple test for multiple times reachable initial marking"
matthiaszumkeller Jun 11, 2024
c5aca68
Merge remote-tracking branch 'origin/wip/dk/empire2-owicki' into wip/…
matthiaszumkeller Jun 11, 2024
6eafe5f
Add example with simple cycle to init marking
matthiaszumkeller Jun 11, 2024
6701941
Add empire for client-server-choice
matthiaszumkeller Jun 11, 2024
52552f5
Change empire validity checker to current definition and small fix fo…
matthiaszumkeller Jun 13, 2024
e94e663
Add fix for bystander problem with changing law
matthiaszumkeller Jun 13, 2024
34c12f5
Change symbolic execution to first iterate over all extending transit…
matthiaszumkeller Jun 17, 2024
a751118
Add code for federation computation
matthiaszumkeller Jun 21, 2024
99dfd3a
Fix bug with other proof places for federation
matthiaszumkeller Jun 21, 2024
9fad1a3
Product automata and some refinements of bridge pairs
matthiaszumkeller Aug 15, 2024
35bc246
Fix union, bystander handling and empire of client-server-choice example
matthiaszumkeller Aug 16, 2024
39c13a5
Add post processing without recursion step
matthiaszumkeller Aug 18, 2024
d0a4869
Fix bug in EmpireValidityCheck
matthiaszumkeller Aug 21, 2024
1974e5b
Fix bug in empire validity and important bridge detection
matthiaszumkeller Aug 22, 2024
ef1bd5d
re-enable assert for evaluation
maul-esel Aug 26, 2024
3c0b89a
prepare evaluation
maul-esel Aug 26, 2024
0d4be59
Store successors of bridges that violate the bystanders condition
matthiaszumkeller Aug 27, 2024
c2784f4
Set log level to error
matthiaszumkeller Aug 28, 2024
9ec5ed1
Add new symbolic execution and Bridge code and remove Federation
matthiaszumkeller Nov 7, 2024
db85409
pin jdk and maven versions
maul-esel Nov 7, 2024
581e57c
Move functionality to territory class and fix successor construction …
matthiaszumkeller Nov 20, 2024
4bf2741
Add bridge successors to queue
matthiaszumkeller Nov 20, 2024
ef7f10d
Add test for post processing and cycle to bridge pair
matthiaszumkeller Nov 20, 2024
cf8d64e
remove unnecessary parameters from EmpireValidityCheck
maul-esel Nov 29, 2024
60499b3
Remove necessity for law place in enabledTransitions
matthiaszumkeller Nov 29, 2024
c194c01
Remove unnecessary code
matthiaszumkeller Nov 29, 2024
a7d9519
PetriOwickiGries: support both kinds of empire computations
maul-esel Nov 29, 2024
5e9e41d
Merge branch 'wip/dk/empire-owicki' into wip/dk/empire2-owicki
maul-esel Nov 29, 2024
c09e161
Merge branch 'dev' into wip/dk/empire2-owicki
maul-esel Nov 29, 2024
8a39dab
remove accidentally re-added, obsolete class InductivityCheck
maul-esel Nov 29, 2024
07b837b
EmpireAnnotationParser: remove obsolete unused regular expressions
maul-esel Nov 29, 2024
205f48a
undo statistics changes that broke StatisticsAggregator
maul-esel Nov 30, 2024
bb222c9
remove unused function
maul-esel Nov 30, 2024
ef861b4
remove TraceAbstraction dependency from Library-TraceCheckerUtilsTest
maul-esel Nov 30, 2024
5212a00
move Owicki-Gries code to Library-Proofs
maul-esel Nov 30, 2024
89f8c74
move Owicki-Gries tests into new Library-ProofsTest project
maul-esel Nov 30, 2024
1cd1084
use IFloydHoareAnnotation type instead of Map
maul-esel Nov 30, 2024
89045fd
OwickiGriesTestSuite: add timeout for long-running tests
maul-esel Nov 30, 2024
a54e3f0
CrownConstruction: respect toolchain timeout
maul-esel Nov 30, 2024
0baa7e1
remove some unused code
maul-esel Nov 30, 2024
8818335
add utility method for initial Marking
maul-esel Dec 2, 2024
a80a329
let OwickiGriesAnnotation implement IProof
maul-esel Dec 2, 2024
ce709ff
include IPossibleInterferences inside OwickiGriesAnnotation
maul-esel Dec 2, 2024
214e4bd
TransformFloydHoareAnnotation: support default predicate
maul-esel Dec 2, 2024
5181e69
work on backtranslating proofs and integrating with IProofProducer
maul-esel Dec 2, 2024
2f9e4e3
Add option to construct Empire without PlacesCoRelation
matthiaszumkeller Dec 2, 2024
c6ee139
add proof production support to CegarLoopForPetriNets
maul-esel Dec 2, 2024
3e982c1
add settings object for Owicki-Gries computation
maul-esel Dec 3, 2024
0ebd283
support crowns-based Owicki-Gries proofs in CegarLoopForPetriNets
maul-esel Dec 3, 2024
2cbb273
Owicki-Gries backtranslation: introduce new names for ghost variables
maul-esel Dec 3, 2024
a1ebe46
support ghost variable declarations to CACSL2BoogieBacktranslator
maul-esel Dec 3, 2024
5e8e6aa
EmpireComputation: Floyd-Hoare automata always have IPredicate states
maul-esel Dec 3, 2024
a6caae5
support newest Empire-based OwickiGries computation in CegarLoopForPe…
maul-esel Dec 3, 2024
897c3e7
Delete BridgePairs class and add Class for Graph node Triples
matthiaszumkeller Dec 3, 2024
9dcf805
Small changes in Bridge/GraphNode and add functions for replace and e…
matthiaszumkeller Dec 3, 2024
2b33ba8
Add equals() for GraphNode
matthiaszumkeller Dec 3, 2024
8e265c0
fix an NPE
maul-esel Dec 4, 2024
454bb29
IPetriNetProofProducer gets only IPredicateUnifier, not entire refine…
maul-esel Dec 5, 2024
6f107f4
switch tests to IPetriNetProofProducer, remove old test suites
maul-esel Dec 5, 2024
26adf01
some first steps to improving O/G statistics
maul-esel Dec 5, 2024
be6c60c
remove most of PetriOwickiGries
maul-esel Dec 5, 2024
068592d
Library-Proofs: export only main O/G package
maul-esel Dec 5, 2024
34c0d17
Add hash() for GraphNode and use only Triples during Empire computation
matthiaszumkeller Dec 7, 2024
ffabcac
Add validity check for disjunctive definition
matthiaszumkeller Feb 6, 2025
83c35f9
Remove PostProcessing from EmpireComputation
matthiaszumkeller Feb 13, 2025
e98a6ab
add TODO
maul-esel Feb 21, 2025
8c7dec6
outline for empire automaton implementation
maul-esel Feb 21, 2025
55e69d0
Remove htc and implication checker from EmpireComputation and fix but…
matthiaszumkeller Feb 26, 2025
faeeadf
Add first version of Empire Automaton construction
matthiaszumkeller Mar 8, 2025
00b6d89
Add first version of Automaton validity check
matthiaszumkeller Mar 9, 2025
dfead2a
Add check for accepting places to validity check
matthiaszumkeller Mar 9, 2025
2da9873
Add Testsuite class for Empire Automaton validity
matthiaszumkeller Mar 10, 2025
f1a1cfa
Remove unnecessary computation
matthiaszumkeller Mar 10, 2025
f61efc6
minor fix
maul-esel Mar 14, 2025
5810587
updated og-benchmark-generator.xml for evaluation
maul-esel Mar 14, 2025
018ac6c
fix no-overflow setting; increase timeout
maul-esel Mar 14, 2025
070570e
prepare O/G proof generation benchmarking
maul-esel Mar 16, 2025
a2e4463
Add first attempt of OG construction from Empire Automaton
matthiaszumkeller Mar 18, 2025
b0fc308
Add ProofProduceTest for Empire Automata to OG
matthiaszumkeller Mar 19, 2025
8db569f
EmpireAutomatonToOG: do not throw AutomataOperationCanceledException
maul-esel Mar 20, 2025
b3a6864
consistent capitalization of OG, see other classes
maul-esel Mar 20, 2025
e5935f3
prepare evaluation
maul-esel Mar 21, 2025
375476c
remove obsolete runconfigs
maul-esel Mar 21, 2025
ad8bc2a
OwickiGriesTestSuite: lift timeout when running via benchexec
maul-esel Mar 21, 2025
478e9be
minor simplifications
maul-esel Mar 21, 2025
aa94c20
Add class to compute automata statistics
matthiaszumkeller Mar 26, 2025
7d34fd4
add example with non-executable transitions
maul-esel Mar 27, 2025
6093dce
extend statistics slightly
maul-esel Mar 27, 2025
cb7e8b8
fix timer statistics: redundant specification of unit
maul-esel Mar 27, 2025
d9deecd
OGProofProducerTest: print statistics
maul-esel Mar 27, 2025
690af1f
OwickiGriesTestSuite: actually set LOG_LEVEL (otherwise defaults to D…
maul-esel Mar 27, 2025
b08565a
Add regions per territory and places per region statistics
matthiaszumkeller Mar 27, 2025
b186fb2
consistently use declareCounter()
maul-esel Mar 30, 2025
c50bab0
Add first version of OG Conjunction and headers
matthiaszumkeller Mar 31, 2025
09491b9
Add ProofProducer for OG Conjunction
matthiaszumkeller Mar 31, 2025
785034a
Add transitions to true to proof automata
matthiaszumkeller Apr 1, 2025
4f1210f
Fix mistake
matthiaszumkeller Apr 1, 2025
121d798
Remove OG logging
matthiaszumkeller Apr 1, 2025
8540913
some refactoring in EmpireAutomatonToOG
maul-esel Apr 3, 2025
b9080e3
AutomataOwickiGriesConjunction: totalize automata
maul-esel Apr 3, 2025
9913375
fix some null errors
maul-esel Apr 3, 2025
f2eee9b
Add isFinal method to EmpireAutomaton
matthiaszumkeller Apr 3, 2025
ca18573
Remove Deadlocks from final states in EmpireAutomaton isFinal
matthiaszumkeller Apr 3, 2025
0b50dff
add three new test cases
maul-esel Apr 7, 2025
c18b1fd
remove empty lines
maul-esel Apr 13, 2025
83ad567
add more test cases with loops and locks
maul-esel Apr 13, 2025
445630f
begin setting up test suite for expected O/G annotations
maul-esel May 6, 2025
927519a
add documentation
maul-esel May 6, 2025
d425126
OwickiGriesValidityCheck: fix logging message
maul-esel May 6, 2025
f36eb4f
Update isFinal method to fit B1/B2 of legal focus
matthiaszumkeller May 8, 2025
5dfe796
Add LegalFocus computation
matthiaszumkeller May 8, 2025
329fc7e
Add Owicki-Gries construction for legal focus
matthiaszumkeller May 8, 2025
0eb7299
Add headers
matthiaszumkeller May 8, 2025
9683d8c
optimizations: cache Region::hashCode, Territory::getPlaces
maul-esel May 10, 2025
527d3a4
additional logging and statistics
maul-esel May 10, 2025
825cbc7
minor fix
maul-esel May 10, 2025
2a7140b
add (hacky) support for trivial focus
maul-esel May 10, 2025
c98dc12
EmpireAutomaton.State: cache hash code for performance
maul-esel May 10, 2025
826fbc5
add test case for very slow separate-Empire computation
maul-esel May 10, 2025
42f977f
LegalFocus: check expected conditions instead of silently skipping re…
maul-esel May 11, 2025
2f8ce84
Region, Territory: cleanup and documentation
maul-esel May 11, 2025
57e6162
avoid unnecessary product construction
maul-esel May 11, 2025
3543fea
add test case for unsafe O/G annotation (legal focus, separate empires)
maul-esel May 11, 2025
554be0f
LegalFocus: check expected conditions instead of silently skipping re…
maul-esel May 11, 2025
e4c16dd
O/G proofs: add more progress logging and timeout handling
maul-esel May 12, 2025
c9b48b7
even more progress logging and timeout handling
maul-esel May 12, 2025
1c92d21
Library-Proofs: fix size computations
maul-esel May 12, 2025
8a15619
Add assertion for non-empty places(state)
matthiaszumkeller May 12, 2025
272fa48
Add assertion for error places
matthiaszumkeller May 13, 2025
b380eac
begin modularity statistics (hacky version)
maul-esel May 15, 2025
8602faf
EmpireAutomaton: simplifications, small improvements
maul-esel May 15, 2025
8e07644
Add test program that showcases the error in empire graph construction
matthiaszumkeller May 18, 2025
650047d
Add new Single Empire Automaton class to solve safety problems regard…
matthiaszumkeller May 21, 2025
4178c63
Add non-initial example for non-safety of the product empire
matthiaszumkeller May 26, 2025
d805ff7
Add counter-example for product safety with equal suffix traces
matthiaszumkeller May 26, 2025
8516750
Add Region subtype with stored transition and adjust other classes to…
matthiaszumkeller May 28, 2025
1c0c1e6
Add Connected Region intersection and Product construction
matthiaszumkeller May 31, 2025
842c847
Add Product construction and Legal focus to OG
matthiaszumkeller Jun 1, 2025
523d026
Add counterexample for region intersection
matthiaszumkeller Jun 5, 2025
20b65ce
Only use joint transitions for region intersection
matthiaszumkeller Jun 9, 2025
9966ef0
Add new legal focus computation
matthiaszumkeller Jun 11, 2025
6711c5d
Fix bug in automata construction that replaces states more often than…
matthiaszumkeller Jun 12, 2025
830a1dd
refactor focus to avoid TrivialLegalFocus hack
maul-esel Jun 12, 2025
aaa7e6a
Refactoring of empire automata and legal focus
maul-esel Jun 13, 2025
eb18dfb
Implement cooperative version of inductive-false for legal focus
matthiaszumkeller Jun 15, 2025
dd2c806
LegalEmpireToOG: avoid stack overflow in getGhostUpdateTerm
maul-esel Jun 13, 2025
a824f92
revised table definition for O/G experiments
maul-esel Jun 13, 2025
067626e
Empire & O/G: refactor, simplify, deduplicate, and small optimizations
maul-esel Jun 16, 2025
650fd22
Change States from triples to pair
matthiaszumkeller Jun 18, 2025
3081cf6
minor code style fix
maul-esel Jun 19, 2025
f4aa81c
test setup improvements
maul-esel Jun 19, 2025
f5de5c7
update benchmark setup
maul-esel Jun 19, 2025
cff45d0
add missing declaration of Floyd-Hoare statistics
maul-esel Jun 20, 2025
ec93230
EmpireAutomaton: technical optimizations
maul-esel Jun 21, 2025
1e7b5de
EmpireAutomaton: further optimizations
maul-esel Jun 21, 2025
f93ca2f
Territory: improve efficiency of getBystanders(), getPlaceRegion() etc
maul-esel Jun 22, 2025
e0d1053
CC fixes
maul-esel Jun 24, 2025
0cad94d
Merge branch 'dev' into wip/dk/empire2-owicki
maul-esel Jun 24, 2025
e8a2d85
Owicki-Gries tests: export and parse possible interferences
maul-esel Jun 27, 2025
0ff3bbf
fix parameters for O/G benchmark generation
maul-esel Jun 28, 2025
9154eea
LegalFocus: propagate focus for each index separately
maul-esel Jun 30, 2025
ac032e3
EmpireAutomataOwickiGries: consistently log when starting new task
maul-esel Jun 30, 2025
c6a1b7a
O/G evaluation: add rundefinitions that only validate O/G annotation
maul-esel Jul 2, 2025
040033b
O/G: Optimize structure for disjunction of conjunctions
maul-esel Jul 2, 2025
8ac9320
fix benchmark setup: proper splitting of commands
maul-esel Jul 2, 2025
a729581
update table definition
maul-esel Jul 3, 2025
ca75bc8
O/G proof producers: pass on-demand implementation of difference
maul-esel Oct 13, 2025
4b38ec5
Merge branch 'dev' into wip/dk/empire2-owicki
maul-esel Dec 17, 2025
484c1b2
fix build error: InvariantResult now expects invariant string
maul-esel Dec 17, 2025
6ee76ab
TraceAbstractionStarter: remove some unnecessary casts
maul-esel Dec 17, 2025
8877748
Merge branch 'dev' into wip/dk/empire2-owicki
maul-esel Mar 23, 2026
e9a52b3
fix build: update plugin versions for Library-ProofsTest
maul-esel Mar 24, 2026
0b01d2a
IPetriNetProofProducer: provide uniform access to possible interferences
maul-esel Mar 24, 2026
24d8839
PetriInitialAbstractionProvider: support state-of-the-art proof produ…
maul-esel Mar 24, 2026
69372f7
O/G witness annotations: store backtranslated terms instead of strings
maul-esel Mar 24, 2026
485e653
IcfgBacktranslator: add support for declaring ghost variables
maul-esel Apr 29, 2026
0950b8e
YamlWitnessWriterV2: fix 2 bugs in printing of ghost instrumentation
maul-esel Apr 29, 2026
cf2dce8
TraceAbstractionStarter: warn on failure of ghost initialization tran…
maul-esel Apr 29, 2026
3f74947
TraceAbstractionStarter: use backtranslated name of ghost variables
maul-esel Apr 29, 2026
34de8e7
TraceAbstractionStarter: use location of edge for ghost update, not s…
maul-esel Apr 29, 2026
b9683f2
begin (hacky) backtranslation of O/G proofs over IcfgPetrifier
maul-esel Apr 29, 2026
1c5ea8b
WitnessPrinter: generate WitnessEntries for ghost instrumentation
maul-esel Apr 29, 2026
8c6590d
CLocation: handle getFunction() calls on global scope locations
maul-esel Apr 29, 2026
2b60b3d
skip proof unpetrification if there is no proof
maul-esel Apr 30, 2026
ecb8f24
add support for ghost updates at join statements
maul-esel May 4, 2026
415509e
prepare evaluation
maul-esel May 4, 2026
65df15d
add example from POPL'26 paper as O/G test
maul-esel May 5, 2026
ca52488
SymmetricHashRelation: fix addPairs method to preserve symmetry
maul-esel May 7, 2026
48e2559
add first implementation of state indistinction relation
maul-esel May 7, 2026
2629b25
remove obsolete implementations of Owicki-Gries proof computation
maul-esel May 28, 2026
923cad3
remove obsolete test files (corresponding test suite was deleted)
maul-esel May 28, 2026
9c05970
remove incomplete test suite and associated files
maul-esel May 28, 2026
08236ec
delete old settings files
maul-esel May 28, 2026
45f020f
delete unused class OwickiGriesConjunction
maul-esel May 28, 2026
107e2f2
Owicki-Gries proofs: reorganise package structure
maul-esel May 29, 2026
eb55be9
delete some unused code (O/G proof producers no longer need the unfol…
maul-esel May 29, 2026
a249742
OwickiGriesTestSuite: small simplification
maul-esel May 29, 2026
7354a6d
fix compile error introduced by eb55be9f
maul-esel May 29, 2026
a1f4ea5
remove some no-longer needed dependencies from test projects
maul-esel May 29, 2026
c7bd7d5
remove outdated comment
maul-esel May 29, 2026
9c5b796
remove an unused method
maul-esel May 29, 2026
5aba76b
cleanup & document "~ghost~" variable name prefix handling
maul-esel Jun 1, 2026
9262eca
rename OwickiGriesConstruction (add "Naive") and move auxiliary method
maul-esel Jun 1, 2026
1d983aa
O/G: move result & ICFG annotation creation to auxiliary method
maul-esel Jun 1, 2026
a5da9da
O/G: rename *EmpireToOG classes, add some documentation
maul-esel Jun 1, 2026
fed2a73
remove unused and dangerous method
maul-esel Jun 1, 2026
2705c1d
fix compile error introduced by 1d983aa967
maul-esel Jun 1, 2026
986eab7
renaming: remove "Automaton" from empires
maul-esel Jun 1, 2026
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: 0 additions & 1 deletion Jenkinsfile.deploy_website
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ pipeline {
tools {
jdk 'JDK21'
maven 'Maven 3.9.11'
maven 'Maven 3.9.11'
}
stages {
stage('Checkout') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
<?xml version="1.0"?>
<!DOCTYPE benchmark PUBLIC "+//IDN sosy-lab.org//DTD BenchExec benchmark 1.9//EN" "https://www.sosy-lab.org/benchexec/benchmark-2.3.dtd">
<benchmark tool="ultimateautomizer" timelimit="15 min" hardtimelimit="16 min" memlimit="8 GB" cpuCores="2">
<resultfiles></resultfiles>
<resultfiles>**/witness.yml</resultfiles>


<option name="&#45;-full-output"/>

<!-- serves as baseline to measure speedup when given witnesses -->
<rundefinition name="verify" />

<rundefinition name="generate">
<option name="&#45;-traceabstraction.positions.where.we.compute.the.hoare.annotation">All</option>
</rundefinition>


<!-- validation of witnesses generated by goblint -->
<rundefinition name="validate-goblint-witnesses">
<option name="&#45;-witness-type">correctness_witness</option>
Expand All @@ -17,6 +23,21 @@
<option name="&#45;-validate">./goblint.2024-02-07_10-47-16.files/SV-COMP24_unreach-call/${taskdef_name}/witness.yml</option>
</rundefinition>

<!-- validation of witnesses generated by ultimate -->
<rundefinition name="validate-ultimate-witnesses">
<option name="&#45;-witness-type">correctness_witness</option>
<option name="&#45;-witnessparser.only.consider.loop.invariants">false</option>

<!-- update path as needed -->
<option name="&#45;-validate">./concurrency-witness-validation.2024-02-20_11-21-23.files/generate/${taskdef_name}/witness.yml</option>
</rundefinition>


<tasks name="single">
<include>${benchmark_path}/../../../trunk/examples/svcomp/weaver/parallel-misc-2-unrolled-atomic.wvr.yml</include>
<propertyfile expectedverdict="true">${benchmark_path}/../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>
</tasks>

<tasks name="ConcurrencySafety-Main-correct">
<includesfile>${benchmark_path}/../../../trunk/examples/svcomp/ConcurrencySafety-Main.set</includesfile>
<propertyfile expectedverdict="true">${benchmark_path}/../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>
Expand Down
41 changes: 38 additions & 3 deletions releaseScripts/default/benchexec/concurrency.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<benchmark tool="ultimateautomizer" memlimit="8GB" timelimit="900" hardtimelimit="920" cpuCores="2">
<resultfiles></resultfiles>
<benchmark tool="ultimateautomizer" memlimit="8GB" timelimit="600" hardtimelimit="620" cpuCores="2">
<resultfiles>*.yml</resultfiles>

<option name="--force-no-wrapper" />
<?ignore
<option name="--force-no-wrapper" />
?>
<option name="--full-output" />

<!-- === No Partial Order Reduction === -->
<!-- ================================== -->
Expand All @@ -23,6 +26,28 @@
<option name="-s">../../../trunk/examples/settings/gemcutter/None.epf</option>
</rundefinition-->

<rundefinition name="Automizer_PN+OG">
<?ignore
<option name="-s">../../../trunk/examples/settings/default/automizer/svcomp-Reach-32bit-Automizer_Default.epf</option>
?>

<option name="--icfgbuilder.only.consider.context.switches.at.boundaries.of.atomic.blocks">false</option>
<option name="--rcfgbuilder.only.consider.context.switches.at.boundaries.of.atomic.blocks">false</option>

<option name="--traceabstraction.automaton.type.used.in.concurrency.analysis">PETRI_NET</option>
<option name="--traceabstraction.owicki-gries.proof.computation.algorithm">LEGAL_FOCUS</option>

<option name="--witnessprinter.generate.graphml.witnesses">false</option>
<option name="--witnessprinter.generate.yaml.witnesses">true</option>
<option name="--witnessprinter.yaml.format.version">2.1</option>
</rundefinition>
<rundefinition name="AutomizerValidator">
<option name="--icfgbuilder.only.consider.context.switches.at.boundaries.of.atomic.blocks">false</option>
<option name="--rcfgbuilder.only.consider.context.switches.at.boundaries.of.atomic.blocks">false</option>

<option name="--witness-type">correctness_witness</option>
<option name="--validate">./results/concurrency.2026-05-04_12-55-51.files/Automizer_PN+OG/${taskdef_name}/witness.yml</option>
</rundefinition>

<!-- === Cassez/Ziegler-style: single-shot up-front reduction, then normal verification === -->
<!-- ====================================================================================== -->
Expand Down Expand Up @@ -478,6 +503,16 @@
<!-- ==================================================== TASKS ==================================================== -->
<!-- =============================================================================================================== -->

<tasks name="ogwitness-canary">
<include>../../../trunk/examples/svcomp/pthread-atomic/dekker.yml</include>
<propertyfile>../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>
</tasks>
<tasks name="ogwitness-atomic">
<include expectedverdict="true">../../../trunk/examples/svcomp/pthread-atomic/*.yml</include>
<exclude>../../../trunk/examples/svcomp/pthread-atomic/*-witness.yml</exclude>
<propertyfile>../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>
</tasks>

<tasks name="POPL2023">
<option name="-tc">../../../trunk/examples/toolchains/AutomizerBplInline.xml</option>
<option name="&#45;-traceabstraction.dfs.order.used.in.por">LOOP_LOCKSTEP</option>
Expand Down
52 changes: 52 additions & 0 deletions releaseScripts/default/benchexec/og-benchmark-generator.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<benchmark tool="ultimateautomizer" memlimit="8GB" timelimit="900" hardtimelimit="920" cpuCores="2">
<resultfiles>/storage/repos/ultimate/releaseScripts/default/UAutomizer-linux/*.ats</resultfiles>

<option name="--force-no-wrapper" />
<option name="-tc">../../../trunk/examples/toolchains/AutomizerCInline.xml</option>
<option name="-s">../../../trunk/examples/settings/automizer/concurrent/svcomp-Reach-32bit-Automizer_Default-noMmResRef-PN-NoLbe.epf</option>
<option name="--traceabstraction.positions.where.we.compute.the.hoare.annotation">All</option>
<option name="--cacsl2boogietranslator.behaviour.of.calls.to.undefined.functions">OVERAPPROXIMATE_BEHAVIOUR</option>

<rundefinition name="AutomizerPN-ReachSafety">
<tasks name="ConcurrencySafety-Main">
<includesfile>../../../trunk/examples/svcomp/Concurrency.set</includesfile>
<propertyfile expectedverdict="true">../../../trunk/examples/svcomp/properties/unreach-call.prp</propertyfile>
</tasks>
</rundefinition>

<rundefinition name="AutomizerPN-NoDataRace">
<tasks name="NoDataRace-Main">
<option name="&#45;-cacsl2boogietranslator.check.absence.of.data.races.in.concurrent.programs">true</option>
<option name="&#45;-cacsl2boogietranslator.check.unreachability.of.reach_error.function">false</option>

<includesfile>../../../trunk/examples/svcomp/Concurrency.set</includesfile>
<propertyfile expectedverdict="true">../../../trunk/examples/svcomp/properties/no-data-race.prp</propertyfile>
</tasks>
</rundefinition>

<rundefinition name="AutomizerPN-MemSafety">
<tasks name="ConcurrencySafety-MemSafety">
<option name="--cacsl2boogietranslator.check.unreachability.of.reach_error.function">false</option>
<option name="--cacsl2boogietranslator.pointer.base.address.is.valid.at.dereference">CHECK</option>
<option name="--cacsl2boogietranslator.pointer.to.allocated.memory.at.dereference">CHECK</option>
<option name="--cacsl2boogietranslator.check.array.bounds.for.arrays.that.are.off.heap">CHECK</option>
<option name="--cacsl2boogietranslator.check.if.freed.pointer.was.valid">true</option>
<option name="--cacsl2boogietranslator.adapt.memory.model.on.pointer.casts.if.necessary">true</option>

<includesfile>../../../trunk/examples/svcomp/Concurrency.set</includesfile>
<propertyfile expectedverdict="true">../../../trunk/examples/svcomp/properties/valid-memsafety.prp</propertyfile>
</tasks>
</rundefinition>

<rundefinition name="AutomizerPN-NoOverflow">
<tasks name="ConcurrencySafety-NoOverflow">
<option name="--cacsl2boogietranslator.check.unreachability.of.reach_error.function">false</option>
<option name="--cacsl2boogietranslator.check.absence.of.signed.integer.overflows">CHECK</option>

<includesfile>../../../trunk/examples/svcomp/Concurrency.set</includesfile>
<propertyfile expectedverdict="true">../../../trunk/examples/svcomp/properties/no-overflow.prp</propertyfile>
</tasks>
</rundefinition>

</benchmark>
80 changes: 80 additions & 0 deletions releaseScripts/default/benchexec/og-proof-generation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<benchmark tool="shell" memlimit="8GB" timelimit="300" hardtimelimit="320">
<resultfiles></resultfiles>

<option name="success">1 tests successful</option>
<option name="failure">1 tests failed</option>

<rundefinition name="ModularLegalFocusOG-WithAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$ModularLegalFocusOG ${inputfile_name} true</option>
</rundefinition>

<rundefinition name="ModularLegalFocusOG-NoAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$ModularLegalFocusOG ${inputfile_name} false</option>
</rundefinition>

<rundefinition name="ModularLegalFocusOG-Validate">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1 -DOwickiGries.Validate=true' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$ModularLegalFocusOG ${inputfile_name} false</option>
</rundefinition>


<rundefinition name="GlobalLegalFocusOG-WithAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$GlobalLegalFocusOG ${inputfile_name} true</option>
</rundefinition>

<rundefinition name="GlobalLegalFocusOG-NoAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$GlobalLegalFocusOG ${inputfile_name} false</option>
</rundefinition>

<rundefinition name="GlobalLegalFocusOG-Validate">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1 -DOwickiGries.Validate=true' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$GlobalLegalFocusOG ${inputfile_name} false</option>
</rundefinition>


<rundefinition name="EmpireAutomatonOG-WithAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$EmpireAutomatonOG ${inputfile_name} true</option>
</rundefinition>

<rundefinition name="EmpireAutomatonOG-NoAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$EmpireAutomatonOG ${inputfile_name} false</option>
</rundefinition>

<rundefinition name="EmpireAutomatonOG-Validate">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1 -DOwickiGries.Validate=true' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$EmpireAutomatonOG ${inputfile_name} false</option>
</rundefinition>


<rundefinition name="NaiveOG-WithAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$NaiveOG ${inputfile_name} true</option>
</rundefinition>

<rundefinition name="NaiveOG-NoAssert">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$NaiveOG ${inputfile_name} false</option>
</rundefinition>

<rundefinition name="NaiveOG-Validate">
<option name="command">env JAVA_TOOL_OPTIONS='-DOwickiGries.Timeout=-1 -DOwickiGries.Validate=true' ${benchmark_path}/../run-test.sh Library-ProofsTest de.uni_freiburg.informatik.ultimate.lib.proofs.owickigries.OGProofProducerTest$NaiveOG ${inputfile_name} false</option>
</rundefinition>


<tasks name="SVBenchmarks-ConcurrencySafety">
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/ReachSafety.*.ats</include>
</tasks>

<tasks name="SVBenchmarks-MemSafety">
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/MemSafety.*.ats</include>
</tasks>

<tasks name="SVBenchmarks-NoDataRace">
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/NoDataRace.*.ats</include>
</tasks>

<tasks name="SVBenchmarks-NoOverflow">
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/NoOverflow.*.ats</include>
</tasks>

<tasks name="canary">
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/separate-threads*.ats</include>
<include>../../../trunk/examples/concurrent/OwickiGries/PetriPrograms/ReachSafety.test-*.ats</include>
</tasks>
</benchmark>
Loading