mirror of
https://github.com/Z3Prover/z3
synced 2025-08-27 13:39:49 +00:00
51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
/*++
|
|
Copyright (c) 2011 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
aig_tactic.h
|
|
|
|
Abstract:
|
|
|
|
Tactic for minimizing circuits using AIGs.
|
|
|
|
Author:
|
|
|
|
Leonardo (leonardo) 2011-10-24
|
|
|
|
Tactic Documentation:
|
|
|
|
## Tactic aig
|
|
|
|
### Short Description
|
|
|
|
Simplify Boolean structure using AIGs (And-inverter graphs).
|
|
|
|
### Long Description
|
|
|
|
And-inverter graphs (AIGs) uses just the Boolean connectives `and` and `not` to encode Boolean
|
|
formulas. The circuit representation using AIGs first converts formulas using other connectives to this normal form,
|
|
then performs local simplification steps to minimize the circuit representation.
|
|
Note that the simplification steps used by this tactic are heuristic, trading speed for power,
|
|
and do not represent a high-quality circuit minimization approach.
|
|
|
|
### Example
|
|
|
|
```z3
|
|
(declare-const a Bool)
|
|
(declare-const b Bool)
|
|
(declare-const c Bool)
|
|
(assert (or (and a b) (and b a c)))
|
|
(apply aig)
|
|
```
|
|
|
|
--*/
|
|
#pragma once
|
|
|
|
#include "util/params.h"
|
|
class tactic;
|
|
|
|
tactic * mk_aig_tactic(params_ref const & p = params_ref());
|
|
/*
|
|
ADD_TACTIC("aig", "simplify Boolean structure using AIGs.", "mk_aig_tactic()")
|
|
*/
|