pub struct AIGERDetails { /* private fields */ }
Expand description
Problem details such as latches, outputs, and bad states for an and-inverter graph
Latches are not natively supported by Circuit
s, but each latch
output is modeled as a an additional circuit input, and each latch input is
modeled as a Boolean function, concretely a Literal
. In the current
implementation, the input numbers for latches are in range
(self.inputs() + 1)..(self.inputs() + self.latches().len())
.
Implementations§
Source§impl AIGERDetails
impl AIGERDetails
Sourcepub fn get_latch_no(&self, literal: Literal) -> Option<usize>
pub fn get_latch_no(&self, literal: Literal) -> Option<usize>
Get the latch number of literal
, if it refers to a latch
If the return value is Some(index)
, index
is valid for the slice
returned by Self::latches()
.
Sourcepub fn latch_init_value(&self, i: usize) -> Option<bool>
pub fn latch_init_value(&self, i: usize) -> Option<bool>
Get the initial value of latch i
Sourcepub fn map_aiger_literal(&self, literal: usize) -> Option<Literal>
pub fn map_aiger_literal(&self, literal: usize) -> Option<Literal>
Map the given AIGER literal to a Literal
for use with the
Circuit
Note that the literals in AIGERDetails
are already mapped
accordingly. This method is useful if you want to refer to specific
gates or literals using the values from the AIGER source.
Sourcepub fn output_name(&self, i: usize) -> Option<&str>
pub fn output_name(&self, i: usize) -> Option<&str>
Get the name for output i
Sourcepub fn invariant_name(&self, i: usize) -> Option<&str>
pub fn invariant_name(&self, i: usize) -> Option<&str>
Get the name for invariant constraint i
Sourcepub fn justice_name(&self, i: usize) -> Option<&str>
pub fn justice_name(&self, i: usize) -> Option<&str>
Get the name for justice constraint i
Sourcepub fn apply_gate_map(&self, gate_map: &[Literal]) -> Self
pub fn apply_gate_map(&self, gate_map: &[Literal]) -> Self
Map the literals in self
based on gate_map
See Literal::apply_gate_map()
for more details.
Sourcepub fn apply_gate_map_in_place(&mut self, map: &[Literal])
pub fn apply_gate_map_in_place(&mut self, map: &[Literal])
In-place version of Self::apply_gate_map()
Trait Implementations§
Source§impl Clone for AIGERDetails
impl Clone for AIGERDetails
Source§fn clone(&self) -> AIGERDetails
fn clone(&self) -> AIGERDetails
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more