Ocelot Rela%onal Logic in a Solver-Aided Language James Bornholt - - PowerPoint PPT Presentation

ocelot
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Ocelot

Rela%onal Logic in a Solver-Aided Language

James Bornholt Emina Torlak

University of Washington

http://ocelot.tools

slide-2
SLIDE 2

Ocelot is a DSL for rela.onal logic, embedded in the Rose7e solver-aided language

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

  • ther constraints.
slide-3
SLIDE 3

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

Ocelot can synthesize and debug large memory model specificaFons

[Bornholt & Torlak, PLDI 2017]

slide-4
SLIDE 4

Ocelot is fast at both verificaFon and higher-order queries

Time (s) 10 20 30 40 Alloy Ocelot Herd

Verifica.on

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*

Equivalence

Average 22× faster than Alloy*

slide-5
SLIDE 5

Ocelot is a DSL for rela.onal logic, embedded in the Rose7e solver-aided language

http://ocelot.tools