Title: Reachability Analysis using AIGs (instead of BDDs?)
1Reachability Analysis using AIGs (instead of
BDDs?)
290N The Unknown Component Problem Lecture 23
2Outline
- AND-INV graphs (AIGs)
- Non-canonicity
- Structural hashing
- Applications
- Reachability analysis (implementation using AIGs)
- Image computation
- Boolean operations
- Structural fixed point
- Discussion (advantages and disadvantages compared
to BDDs) - Delayed Boolean operations
- Need efficient logic synthesis for highly
redundant AIGs - Developing a hybrid approach (combining AIGs and
BDDs) - Collapsing
- Sliding boundary
- Other methods?
3And/Inverter Graphs (AIGs)
- Example
- Non-canonicity
- Structural hashing
- Typical applications
4Example
cdab 00 01 11 10
00 0 0 1 0
01 0 0 1 1
11 0 1 1 0
10 0 0 1 0
F(a,b,c,d) ab d(acbc)
d
a
b
b
c
a
c
F(a,b,c,d) ac(bd) c(ad) ac(bd)
bc(ad)
cdab 00 01 11 10
00 0 0 1 0
01 0 0 1 1
11 0 1 1 0
10 0 0 1 0
a
c
b
d
b
c
a
d
5Structural Hashing
- No structural hashing
- Always add a new AND-node
- One-level structural hashing
- 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)
6Applications 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
7Reachability Analysis using AIGs
- Computation using AIGs
- Reachability pseudo-code
- Using AIGs for reachability
- Example
- Structural fixed point
- Consequences
8Using AIGs for Computation
- Boolean operations
- Express an operation in terms of ANDs and INVs
- Cofactoring
- Propagate a constant
- Quantification
- Propagate two constants and OR the results
- Variable replacement
- Reconstruct a graph in terms of different
variables
9Reachable State Computation
- Relation(cs,ns) ?i ?k nsk ? NSk( i, cs )
- Reached(cs) 0Front(cs) InitState(cs)
- do Reached Reached Front
Next(cs) ?cs Relation(cs,ns) Front(cs)
?ns ? cs - Front Next Reachedwhile (
Front ? 0 )
10Using AIGs for Reachability
- General idea
- Take any BDD-based computation and perform it
using AIGs, instead of BDDs - Consequences
- 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
11Example s27, initial state
12Example s27, transition relation
13Example s27, quantified relation
14Example s27, reached 1
15Example s27, reached 2
16Example s27, reached 1
17Reduction 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
18Reduction Procedures To Try
- Key insight
- AIGs record delayed BDD computations!
- BDD-based partial collapsing
- Using a shifting BDD/AIG boundary
19Structural 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 n1 iterations.
20Proof
- 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 n1 iterations.
21Lemma
- 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.
22Reachable State Computation
- Relation(cs,ns) ?i ?k nsk ? NSk( i, cs )
- Reached(cs) 0Front(cs) InitState(cs)
- do Reached Reached Front
Next(cs) ?cs Relation(cs,ns) Front(cs)
?ns ? cs - Front Next Reachedwhile (
Front ? 0 )
23Proof Illustration
?cs P(cs,ns)
P(cs,ns) Relation(cs,ns) Front(cs)
Quantification
?
Front
Relation
P
P
P
P
cs
00
cs
ns
01
10
11
ns
ns
ns
ns
24Discussion
- It would be nice if AIGs could beat BDDs for
reachable state computation - In practice, this did not happen (so far)
25Towards 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
26Conclusion
- 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