reactive synthesis problems
play

Reactive Synthesis Problems Ayrat Khalimov SYNT 2015 Simple - PowerPoint PPT Presentation

Specification Format for Reactive Synthesis Problems Ayrat Khalimov SYNT 2015 Simple arbiter g r Every request should be granted: ( ) No spurious grants Lets specify spurious grants in RE:


  1. Specification Format for Reactive Synthesis Problems Ayrat Khalimov SYNT 2015

  2. Simple arbiter g r • “Every request should be granted”: 𝐇(𝑠 → 𝐆𝑕) • “No spurious grants” Let’s specify “spurious grants” in RE: ∗ (. , 𝑕) ¬𝑠, ¬𝑕 + ¬𝑠, 𝑕 . , .

  3. In LTL: . , . ∗ . , 𝑕 ¬𝑠, ¬𝑕 + (¬𝑠, 𝑕) • 𝐆 𝑕 𝐕 ¬𝑠¬𝑕 𝐕 ¬𝑠 𝑕 ? (NO! It accepts (𝑠 ¬𝑕)(¬𝑠 𝑕) ) • 𝐆 𝑕 𝐕 𝐘(¬𝑠¬𝑕 𝐕 𝐘¬𝑠 𝑕) ? • 𝐆(𝑕 ∧ (𝑕 𝐕 (¬𝑠¬𝑕 ∧ (¬𝑠¬𝑕 𝐕 ¬𝑠 𝑕))))

  4. Synthesis flow LTL properties implementation synthesizer

  5. Synthesis flow LTL properties implementation synthesizer ω RE automata synthesizer that can handle the format partial implementations format that supports these all

  6. Synthesis flow any translator SYNTCOMP implementation LTL properties into synthesizer SYNTCOMP ω RE automata partial implementations

  7. Outline of the talk any translator SYNTCOMP implementation LTL properties into synthesizer SYNTCOMP ω RE automata partial implementations translator new format synthesis example: (extended SMV) extended SMV -> SYNTCOMP a Huffman encoder

  8. Format requirements • embedded into existing programming language • modular • property language agnostic (LTL, ω RE, automata…) • fast synthesizers

  9. Proposed format • embedded into existing programming language - SMV • modular - part of SMV • property language agnostic (LTL, ω RE, automata…) - automata • fast synthesizers - SYNTCOMP

  10. Comparison with ([1])([2]) • embedded into existing programming language - SMV (SMV) (Promela) • modular - part of SMV (part of SMV) (part of Promela) • property language agnostic (LTL, ω RE, automata…) - automata (LTL patterns) (LTL + relations) • fast synthesizers - SYNTCOMP (original GR1) (SLUGS GR1)

  11. FORMAT DESCRIPTION EXTENDED SMV

  12. SMV format MODULE main VAR input: 0..10; state: boolean; variables x: 0..10; DEFINE x_is_2input := (x=input+input); macros ASSIGN init(state) := FALSE; variables next(state) := (x=0 | x_is_2input); behaviour init(x) := 0; next(x) := x+input; LTLSPEC specification G(state | (x!=10))

  13. SMV format (cont.) MODULE module1(i1,i2) i1 VAR module1 x: ... i2 ... MODULE module2(i1) i1 VAR module2 out : ... MODULE main VAR input input: ... i1 VAR out m1 m2 m1: module1(input, m2.out); i2 x m2: module2(m1.x);

  14. Extended SMV

  15. Extended SMV Only main can have specifications LTL, LDL, RE, patterns? relations? only safety assumptions

  16. TRANSLATION INTO SYNTCOMP

  17. SYNTCOMP format Standard: 𝐇¬𝑐𝑏𝑒 Extended with liveness: (¬𝑐𝑏𝑒 𝐗 ¬𝑗𝑜𝑤) ∧ (𝐇 𝑗𝑜𝑤 → 𝐇𝐆 𝑘𝑣𝑡𝑢)

  18. Working flow automata: flattening into a boolean SMV • determinization boolean SMV to AIGER • complementation module translation aisy.py or from SYNTCOMP

  19. SYNTHESIZING HUFFMAN ENCODER

  20. Huffman encoding 01,101,1101,... A,B,C,... A,B,C,... encoder decoder “more often appearing letters have shorter ciphers”

  21. Letters frequency table +-------------( )---------------+ | | +-------( )------+ +------( )-----+ | | | | | | | | +----( )----+ ( ) +--( )--+ ( ) | | / \ | | / \ | | | | | | | | +--( )--+ ( ) [E] ( ) ( ) ( ) [ ] ( ) | | / \ / \ / \ / \ / \ | | | | | | | | | | | | ( ) ( ) [S] ( ) ( ) [A] [I] [O] [R] [N] ( ) [T] / \ / \ / \ / \ / \ | | | | | | | | | | [U] [P] [F] [C] ( ) [L] [H] ( ) [D] ( ) / \ / \ / \ | | | | | | +----( ) [W] [G] [Y] ( ) [M] | \ / \ | | | | ( ) ( ) [B] [V] / \ / \ | | | | [Q] ( ) [K] [X] / \ | | [Z] [J]

  22. Synthesizing a Huffman encoder Specification A1. “ input 𝑒𝑏𝑢𝑏𝐽𝑜 is within range 1..27 ” A2. “ 𝑒𝑏𝑢𝑏𝐽𝑜 does not change until incl. the moment when 𝑒𝑝𝑜𝑓 is high” G1. 𝐇(𝑒𝑝𝑜𝑓 → 𝐘 𝑓𝑜𝑟 𝑒𝑓𝑑 ) G2. 𝐇 ¬𝑒𝑗𝑔𝑔 G3. 𝐇𝐆 𝑒𝑝𝑜𝑓

  23. Info about the synthesis • The specification: - # latches = 45 - # AND gates = 3k • The model has: - # AND gates = 130k (120k) • Timings: - 2min (4min) • The model is as expected

  24. Conclusion & discussion • Adapted the SMV format to synthesis tasks • Provided scripts to translate into the SYNTCOMP • Is SMV good enough or Verilog should be used? • Should we support LTL/RE formats? • Should we support GR1 or full LTL semantics? • Should we support partial information? • Simpler ways to translate? thank you

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