The CISE logic is able to prove that some distributed program is safe, in the sense that it maintains some application invariant of interest.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 4 commits ahead of najafzadeh:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gradle/2.7/taskArtifacts
.idea
.settings
bin
build
lib
src
tools
.classpath
.project
README.md
StaticTool.iml
StaticTool2.iml
build.gradle
compile_xpr.sh
counter-crdt.smt
foo.smt2
get_and_compile_z3.sh
hs_err_pid1069.log
hs_err_pid721.log
hs_err_pid723.log
hs_err_pid724.log
hs_err_pid734.log
hs_err_pid742.log
hs_err_pid744.log
hs_err_pid846.log
hs_err_pid849.log
hs_err_pid850.log
test.log

README.md

CISE

The CISE logic is able to prove that some distributed program is safe, in the sense that it maintains some application invariant of interest.

We have developed a SMT-based tool that automates CISE logic, and verified several example applications using the tool. A successful analysis proves that a given program will maintain its integrity invariants. If not, the tool provides a counter-example, which the program developer can examine, in order to adjust the program design either by weakening application semantics, and/or by adding concurrency controls, in order to disallow toxic concurrency.

Code Sample

The developer writes the properties of her program as Java annotations.

See https://syncfree.lip6.fr/index.php/2-uncategorised/51-cise for me details.

Main Publications

The basic idea is in a paper by Balegas et al. presented at EuroSys 2015: Putting Consistency back into Eventual Consistency. V. Balegas et al., EuroSys, Apr. 2015.

The logic is formalised and proved in a paper by Gotsman et al., POPL 2016. Cause I'm Strong Enough: Reasoning about Consistency Choices in Distributed Systems. A. Gotsman et al., POPL, Jan. 2016