290N: The Unknown Component Problem Lecture 23 Reachability Analysis using AIGs (instead of BDDs?) Outline AND-INV graphs (AIGs) Reachability analysis (implementation using AIGs) Image computation Boolean operations Structural fixed point Discussion (advantages and disadvantages compared to BDDs) Non-canonicity Structural hashing Applications Delayed Boolean operations Need efficient logic synthesis for highly redundant AIGs Developing a hybrid approach (combining AIGs and BDDs) Collapsing Sliding boundary Other methods? And/Inverter Graphs (AIGs) Example Non-canonicity Structural hashing Typical applications Example cd ab 00 01 11 10 cd ab 00 01 11 10 00 01 11 10 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 00 01 11 10 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 0 F(a,b,c,d) = ab + d(ac’+bc) a d b a c’ b c F(a,b,c,d) = ac’(b’d’)’ + c(a’d’)’ = ac’(b+d) + bc(a+d) a c’ b d b c a d Structural Hashing No structural hashing One-level structural hashing Always add a new AND-node When a new AND-node is to be added, check a hash table for an existence of a node with the same pair of inputs; if it exists, return it; otherwise, create a new node Two-level structural hashing When a new AND-node is to be added, consider its predecessors, and hash the three AND-gates into a canonical form (two-level canonicity) Applications of AIGs A data structure for circuit-based SAT A data structure for EC and BMC A alternative representation of functionality of a node in the Boolean network A uniform representation for both algebraic factored forms, and the result of Boolean decomposition Reachability Analysis using AIGs Computation using AIGs Reachability pseudo-code Using AIGs for reachability Example Structural fixed point Consequences Using AIGs for Computation Boolean operations Cofactoring Propagate a constant Quantification Express an operation in terms of ANDs and INVs Propagate two constants and OR the results Variable replacement Reconstruct a graph in terms of different variables Reachable State Computation Relation(cs,ns) = i k [ nsk NSk( i, cs ) ]; Reached(cs) = 0; Front(cs) = InitState(cs); do { Reached = Reached + Front; Next(cs) = cs [ Relation(cs,ns) & Front(cs) ] ns cs; Front = Next & Reached; } while ( Front 0 ); Using AIGs for Reachability General idea Consequences Take any BDD-based computation and perform it using AIGs, instead of BDDs Prevents unexpected “BDD blow-ups” Instead, creates AIGs monotonically growing from one iteration to another Requires efficient reduction procedures A good test for logic synthesis algorithms and tools Example: s27, initial state Example: s27, transition relation Example: s27, quantified relation Example: s27, reached 1 Example: s27, reached 2 Example: s27, reached 1 Reduction Procedures Tried Merging functionally-equivalent nodes (up to complementation) AIG rewriting using pre-computed table Applying optimization scripts in SIS/MVSIS BDD-based collapsing BDD-based partial collapsing Reduction Procedures To Try Key insight AIGs record delayed BDD computations! BDD-based partial collapsing Using a shifting BDD/AIG boundary Structural Fixed Point Definition. The functional fixed point is reached when in the above computation Front = Constant-0 Boolean function Definition. The structural fixed point is reached when in the above computation Front = Constant-0 AIG Theorem. Suppose BDD-based reachable state computation reaches the functional fixed point after n iterations. Then, a similar AIG-based computation reaches the structural fixed point after n or n+1 iterations. Proof After n iterations, Next contains only visited states and Front is Constant 0 Boolean function. If Front is also Constant 0 AIG, the structural fixed point is reached after n iterations. If Front is not Constant-0 AIG, then we show that, after the next image computation, Next becomes Constant-0 AIG (see Lemma). In this case, the fixed point is reached after n+1 iterations. Lemma Lemma. If Front is Constant-0 Boolean function but not Constant-0 AIG, the result of image computation is always Constant-0 AIG. Proof: Each cofactor of Product w.r.t. the cs variables is Constant 0 AIG. Quantification is performed by ORing all of the cofactors of Product w.r.t. the cs variables. ORing any number of Constant 0 AIGs gives Constant 0 AIG. Q.E.D. Reachable State Computation Relation(cs,ns) = i k [ nsk NSk( i, cs ) ]; Reached(cs) = 0; Front(cs) = InitState(cs); do { Reached = Reached + Front; Next(cs) = cs [ Relation(cs,ns) & Front(cs) ] ns cs; Front = Next & Reached; } while ( Front 0 ); Proof Illustration cs P(cs,ns) P(cs,ns) = Relation(cs,ns) & Front(cs) Quantification Front Relation cs ns cs P P P P ns 00 ns 01 ns 10 ns 11 Discussion It would be nice if AIGs could beat BDDs for reachable state computation In practice, this did not happen (so far) Towards a Hybrid Approach Perhaps AIGs alone cannot beat BDDs A hybrid approach should exploit respective strengths of these data structures BDDs: canonicity, non-redundancy AIGs: no blow-up, structural fixed point The sliding boundary idea AIGs represent delayed BDD computation Conclusion Reviewed AIG data structure Presented AIG-based computation Proved an existence of structural fixed point in the AIG-based reachable state computation Reported on preliminary experimental results Outlined future research
© Copyright 2025 Paperzz