pub fn add_anti_port(&mut self, port_id: PortId) -> Result<(), AcesError> {
        let (port_lit, anti_port_lit) = {
            if let Some(anti_port_id) = self.context.lock().unwrap().get_anti_port_id(port_id) {
                (
                    Lit::from_atom_id(port_id.into(), true),
                    Lit::from_atom_id(anti_port_id.into(), true),
                )
            } else {
                return Ok(()) // this isn't an internal dot
            }
        };

        let clause = Clause::from_pair(port_lit, anti_port_lit, "internal dot");
        self.add_clause(clause)
    }
/// Adds an _anti_port_ rule to this `Formula`.
///
/// This clause constrains dots to a single part of a firing
/// component, source or sink, so that the induced graph of any
/// firing component is bipartite.  The `Formula` should contain
/// one such clause for each internal dot of the c-e structure
/// under analysis.
Adds an _anti_port_ rule to this `Formula`.
This clause constrains dots to a single part of a firing
component, source or sink, so that the induced graph of any
firing component is bipartite.  The `Formula` should contain
one such clause for each internal dot of the c-e structure
under analysis.
Adds an _anti_port_ rule to this ` Formula ` . This clause constrains dots to a single part of a firing component source or sink so that the induced graph of any firing component is bipartite . The ` Formula ` should contain one such clause for each internal dot of the c - e structure under analysis .
pub fn add_anti_port(&mut self, port_id: PortId) -> Result<(), AcesError> {
        let (port_lit, anti_port_lit) = {
            if let Some(anti_port_id) = self.context.lock().unwrap().get_anti_port_id(port_id) {
                (
                    Lit::from_atom_id(port_id.into(), true),
                    Lit::from_atom_id(anti_port_id.into(), true),
                )
            } else {
                return Ok(()) // this isn't an internal dot
            }
        };
        let clause = Clause::from_pair(port_lit, anti_port_lit, "internal dot");
        self.add_clause(clause)
    }
pub fn add_anti_port ( & mut self , port_id : PortId ) -> Result < ( ) , AcesError > { let ( port_lit , anti_port_lit ) = { if let Some ( anti_port_id ) = self . context . lock ( ) . unwrap ( ) . get_anti_port_id ( port_id ) { ( Lit :: from_atom_id ( port_id . into ( ) , true ) , Lit :: from_atom_id ( anti_port_id . into ( ) , true ) , ) } else { return Ok ( ( ) ) // this isn't an internal dot } } ; let clause = Clause :: from_pair ( port_lit , anti_port_lit , " " ) ; self . add_clause ( clause ) }
Adds an _anti_port_ rule to this `Formula`.
Adds an _anti_port_ rule to this ` Formula ` .
&mut self
port_id
PortId
&mut self
port_id
PortId