Ocelot
Rela%onal Logic in a Solver-Aided Language
James Bornholt Emina Torlak
University of Washington
Ocelot Rela%onal Logic in a Solver-Aided Language James Bornholt - - PowerPoint PPT Presentation
Ocelot Rela%onal Logic in a Solver-Aided Language James Bornholt http://ocelot.tools Emina Torlak University of Washington all d: Dir | lone d.~contents becomes (all ([d Dir]) (lone (join d (~ contents)))) Ocelot is a DSL for rela.onal
University of Washington
all d: Dir | lone d.~contents
becomes
(all ([d Dir]) (lone (join d (~ contents)))) (define X (join d (~ contents))) (println X) > (join d (~ contents)) Analysis backend is SMT (Z3) Supports synthesis of relaFonal expressions, and combinaFon with
Synthesis PowerPC x86 768 tests
[Alglave et al, CAV’10]
10 tests ✓ 12 seconds ✓ 2 seconds
Not equivalent to TSO!
9 new tests 4 new tests Ambiguity
Not equivalent to published model! Search space: 21406 Search space: 2624 sync, lwsync, etc. mfence, xchg
[Bornholt & Torlak, PLDI 2017]
Time (s) 10 20 30 40 Alloy Ocelot Herd
As fast as a custom memory model decision procedure Time (s) 0.1 1 10 100 1000 Problems Solved 10 20 30 40 50
Ocelot Alloy*
Average 22× faster than Alloy*