Reducing the Evolutionary Analysis Cost of Alloy Hamid Bagheri - - PowerPoint PPT Presentation

reducing the evolutionary analysis cost of alloy
SMART_READER_LITE
LIVE PREVIEW

Reducing the Evolutionary Analysis Cost of Alloy Hamid Bagheri - - PowerPoint PPT Presentation

Reducing the Evolutionary Analysis Cost of Alloy Hamid Bagheri Workshop on the Future of Alloy April 30 & May 1, 2018. Cambridge, MA Alloys widespread applications Program verification Design modeling and analysis PO POL Mo MonA


slide-1
SLIDE 1

Reducing the Evolutionary Analysis Cost of Alloy

Hamid Bagheri

Workshop on the Future of Alloy

April 30 & May 1, 2018. Cambridge, MA

slide-2
SLIDE 2

PO POL

Mo MonA nArch

Po Poirot

Alloy’s widespread applications

TestEra

Design modeling and analysis Program verification Security analysis Test-case generation

slide-3
SLIDE 3

Challenges

  • No support for analysis of evolving specifications

even if they are substantially overlapping

  • Recompute results in each analysis
  • Especially problematic in online analyses where

specifications are kept in sync with running systems

slide-4
SLIDE 4

Objective

Improve bounded analysis of evolving specifications

3

slide-5
SLIDE 5
  • Bound adjustment
  • Constraint reduction & solution reuse
  • Parallelization

Envision

slide-6
SLIDE 6

Bound adjustment

Each change by itself is not likely to invalidate all the prior analysis results

slide-7
SLIDE 7

Insights

Each change by itself is not likely to invalidate all the prior analysis results Results from previous analyses can be used to narrow the exploration space of the revised specification

slide-8
SLIDE 8

A sample Alloy specification

sig FSObject {} sig Dir extends FSObject {contents: set FSObject} sig File extends FSObject {}

  • ne sig Root extends Dir {}

fact hierarchy { no contents.Root all obj: FSObject | lone contents.obj FSObject in Root.*contents File + Dir = FSObject } run model {} for 4

slide-9
SLIDE 9

sig FSObject {} sig Dir extends FSObject {contents: set FSObject} sig File extends FSObject {}

  • ne sig Root extends Dir {}

fact hierarchy { no contents.Root all obj: FSObject | lone contents.obj FSObject in Root.*contents File + Dir = FSObject } run model {} for 4

A sample Alloy specification

slide-10
SLIDE 10

sig FSObject {} sig Dir extends FSObject {contents: set FSObject} sig File extends FSObject {}

  • ne sig Root extends Dir {}

fact hierarchy { no contents.Root all obj: FSObject | lone contents.obj FSObject in Root.*contents File + Dir = FSObject } run model {} for 4

A sample Alloy specification

slide-11
SLIDE 11

Relational variables and bounds

Upper Bound: All possible values that can be assigned to the relation

slide-12
SLIDE 12

Lower Bound: The set of values that a relation should contain in all solutions

Relational variables and bounds

slide-13
SLIDE 13

Exploration Space

Relational variables and bounds

slide-14
SLIDE 14

Solutions within relational bounds

Upper/lower bound Model instance

slide-15
SLIDE 15

Change in the relational specification

R5’ R4’

slide-16
SLIDE 16

Tighten bounds on relational variables

slide-17
SLIDE 17

Adjusted upper bound:

union of values assigned to a relation in all solutions

Tighten bounds on relational variables

slide-18
SLIDE 18

Adjusted lower bound:

intersection of values assigned to a relation in all solutions

Tighten bounds on relational variables

slide-19
SLIDE 19

Adjusted bounds reduce the exploration space

Tighten bounds on relational variables

slide-20
SLIDE 20

Constraint reduction & solution reuse

  • Constraints recur during evolutionary analyses
  • Incrementally store the constraints already solved,

and retrieved them within the evolutionary analysis

  • Prior work: memoization-based approaches in

symbolic execution

slide-21
SLIDE 21

Thank you