electrum
play

Electrum Lightweight specification of behavioral models with rich - PowerPoint PPT Presentation

Electrum Lightweight specification of behavioral models with rich configurations Julien Brunel 1 , David Chemouil 1 , Alcino Cunha 2 , Nuno Macedo 2 et al. Workshop on the Future of Alloy, April 30 & May 1, 2018, MIT. 1 ONERA/DTIS &


  1. Electrum Lightweight specification of behavioral models with rich configurations Julien Brunel 1 , David Chemouil 1 , Alcino Cunha 2 , Nuno Macedo 2 et al. Workshop on the Future of Alloy, April 30 & May 1, 2018, MIT. 1 ONERA/DTIS & Université de Toulouse 2 INESC-TEC & Universidade do Minho

  2. Observations Many Alloy models feature both structural and behavioral aspects, but: • Behavior modeling requires systematic “boilerplate” • explicit modeling of state (local/global state idiom) • every mutable construct must be indexed by state/time • specification of a linear model of time (most of the time (!)) • specific handling of the last state of a trace • Essentially to model check safety properties, indeed: • spurious counterexamples to liveness properties may happen, unless traces are enriched with lassos [Cunha 14, Biere et al. 99] • even then, limited to bounded model-checking (BMC) (Safety properties rule out unwanted behaviors, liveness properties characterize expected behaviors) 2/7

  3. Remark Linear temporal logic (LTL): • is more expressive than propositional logic • is decidable • relies on a simple & uniform model of time: infinite traces of states • benefits from dedicated, complete model-checking procedures 3/7

  4. Introducing Electrum Mark mutable fields or signatures as such (using a new var keyword). Add LTL + primed variables (as, e.g. , in TLA+). Dedicated analyses: • BMC by reduction to Alloy + traces with lassos • Unbounded MC (UMC) by reduction to NuSMV or nuXmv SAT Solvers SAT Electrum Analyzer Pardinus SAT Alloy Analyzer Kodkod SMV Model Electrod SAT Checkers SAT 4/7

  5. Example: Chord sig Node { var fst : lone Node, pred join [new : Node] { // an event var snd : lone Node, new not in members var prdc : lone Node, some m : members { var todo : Status → Node } between[m, new, m � fst] fst’ = fst + + new → m � fst var sig members in Node {} snd’ = snd + + new → m � snd prdc’ = prdc + + new → m var sig ringMembers in members {} todo’ = todo }} fact { fact strongFairness { always members = all n, m : Node { { n: Node | some n � fst and ( always eventually rectifyEnabled[n,m]) some n � snd and ⇒ ( always eventually rectify[n,m]) some n � prdc } . . . }} always ringMembers = { m : members | m in m � ^succ }} assert correctness { ( eventually always not (join or fail) fun succ : Node → lone Node { . . . } implies eventually always ideal ) } 5/7 . . .

  6. Assessment Fits well most Alloy models with behavior . Often leaner than plain Alloy (not always: e.g. counting events). BMC efficiency on par with classic Alloy. UMC with nuXmv comparable to TLA+’s TLC (room for improvement) (note: nuXmv is not free software; other, non-evaluated, tools exist). Modeling [Zave 2017]’s version of Chord raised various corner cases: analyzing “abstract” liveness properties if useful (even with BMC). 6/7

  7. Prospect Enhance modeling of the “system” (automaton) part, e.g. : actions (guard + post-condition), frame rules, fairness constraints... Most models may then rely on LTL for assertions only. So add branching time (CTL) too? No more a conservative extension of Alloy, though. 7/7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend