Georg Hofferek Ashutosh Gupta Bettina Knighofer JieHong Roland
Georg Hofferek, Ashutosh Gupta, Bettina Könighofer, Jie-Hong Roland Jiang and Roderick Bloem Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof Institute for Applied Information Processing and Communications Graz University of Technology, Austria 2013 -10 -21 u www. iaik. tugraz. at
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 2 Motivation: Concurrency Issues Image Source: http: //www. gabenies. com/tips-tools/does-multitasking-really-work/ s d e e n y c n e r ! r l u o r c t Con ful con care Institute for Applied Information Processing and Communications 2013 -10 -21
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 4 Example: Concurrent Execution Institute for Applied Information Processing and Communications 2013 -10 -21
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 5 Abstraction ( ) “Black” Boxes Uninterpreted Functions Institute for Applied Information Processing and Communications 2013 -10 -21
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 6 Application Example: Pipelined Processors Basic elements are the same = use uninterpreted functions Dill & h Burc igm d Para , Bloem, k ffere E’ 11) o H D (see o. CO m e M
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 7 Overview § Motivation: Pipeline Controller § Synthesis Problem Quantified Formulas § Interpolation § Single § Multiple § Proof Requirements § Colorable § Local-First § Proof Transformations § Results & Conclusion Institute for Applied Information Processing and Communications 2013 -10 -21
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 8 Synthesis Problem Quantified Formulas § Institute for Applied Information Processing and Communications 2013 -10 -21
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 9 Craig Interpolant § A B B I A
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof Expanding Formula for Single Interpolation 10 §
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof Certificate via Interpolation 11 § A 0 not allowed B 1 not allowed e: s a l. , C n et a a le ng 9 o Bo Jia AD’ 0 e se ICC
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 12 Multiple Control Signals § Interdependence! § e. g. two signals must have same value § Iterative Resubstitution § Many SMT calls § Increasing “difficulty” § Multiple Coordinated Interpolants Only one proof required Special requirements towards proof
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 13 Expansion for Multiple Interpolants §
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 14 Definitions: Colorable, Local, Global § f o on le i t a ing z i l ra or s n e n sf e G ion olatio t o n nterp i
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 15 (Reasonable) Assumptions on Proofs § er ] v l So org v er. v T l i o er rit-s. ve w [ww
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 16 Requirements towards Proof § Colorability § “No literals or leaves with symbols from two partitions” § Achieved in two steps § Remove non-colorable literals § Split non-colorable leaves § Local-first § “Local literals are resolved before global literals” § Achieved by standard reordering
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 17 Removing non-colorable Literals Replace
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 18 Split Non-Colorable Leaves
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 19 Making Proof Local-First § Standard Pivot Reordering Techniques , e r a d n a r u P 0 , 1 g 0 2 n i I n A e C o r M K V , , a r v e l i h S c ’ a D b n e s e. g. is e W and
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof Computing Multiple Interpolants 20 § Local Literals 0 Local Literals 1 Local Literals 2 Global Literals Local Literals 3
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 21 Computing Multiple Interpolants Constants 0, 0 Constants 1, 0 Constants 0, 1 Constants 1, 1 Multiplexer tion a l o erp 7) t n I ks’ (JSL’ 9 a l d u re Cf. P rocedu P
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 22 Experimental Results § pipe: Illustrative pipeline example (Memo. CODE’ 11) § 1. 6 seconds instead of 14 hours § proc: Simple 2 -stage pipelined processor § 2 control signals § 28. 1 seconds § illu 02 -08: Scalable illustrative example § 2 -8 control signals § Mutual interdependence
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 23 Scalability: illu 02 -08 Size of Proof for Interpolation [#nodes] Runtime [s] 300 08: 1270 s 1000 250 800 200 600 150 100 400 50 200 0 0 02 03 04 05 06 07 08
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 24 Conclusion § Multiple Coordinated Interpolants § just one proof § Uninterpreted Functions § Good abstraction § Concurrency issues § Full potential unleashed § No reductions to propositional logic § Improvement: Several orders of magnitude § Future work § Colorable and/or local-first proofs from SMT solver § More theories (e. g. linear arithmetic)
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 26 Appendix Detailed slide on some issues that were left out of the main presentation for time reasons Institute for Applied Information Processing and Communications 1/12/2022
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 27 Resubstitution § A Institute for Applied Information Processing and Communications 2013 -10 -21 B
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 28 A Processor REG MEM ALU IF DE EX Tough: § 64 -bit datapath § very complex arithmetic logic unit MEM How do I pipeline that? WB
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 29 A Pipelined Processor REG MEM ALU IF DE EX MEM That’s trivial! WB
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 30 A Pipelined Processor Instructions: r 1 : = mem[1] r 2 : = r 1 + r 2 r 1 = 15 1 r 2 = 2 17 REG 15 MEM mem[1] = 15 ALU IF DE r 1 : = mem[1] r 2 : = r 1 + r 2 stall EX r 1 : = mem[1] r 2 : = 15 + 2 WB MEM r 1 : = mem[1] r 2 : = 17 forward 15 r 1 : = 15 r 2 : = 17
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 31 A Pipelined Processor REG MEM forward ALU IF DE stall Hard to implement Hard to test Easy to specify EX MEM Not so trivial! WB
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 32 Sufficient Condition: Commutative Diagram instr 1 nonpipelined = flush instr 1 pipelined flushed instr 2 flush instr 2 Burch & Dill, for verification instr 3 = flushed Pipelined and non-pipelined processor give same result for any instruction sequence
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 33 Commutative Diagram in Logic Burch & Dill, for verification nonpipelined instr flush ALU EX § = (mem’, reg’) = flush non-pipe-instr (mem, reg) (mem’’, reg’’) = pipe-instr flush (mem, reg) (mem’, reg’) = (mem’’, reg’’) § Pipeline correct iff valid.
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 34 Commutative Diagram in Logic Burch & Dill, for verification nonpipelined instr flush ALU EX § written in logic with uninterpreted functions, arrays, and equality § Part of : res_ex = ALU(opc_de, arg 1_de, arg 2_de)
Synthesizing Multiple Boolean Functions using Interpolation on a Single Proof 35 Removing non-colorable Literals Tautology (Transitivity) Replace
- Slides: 34