Class

util.sat

ProperTreeOptimEncoder

Related Doc: package sat

Permalink

case class ProperTreeOptimEncoder(nnf: Expr, circuit: FormulaLike, primaryEncoder: NNFToCircuitEncoder, witnessEncoder: WitnessEncoder, drFormula: FormulaLike, drEncoder: DualRailEncoder) extends Product with Serializable

Implements the optimisation applicable to gates for which all kids are independent and have a unique parent, ie applicable only to parts of the nnf formula that are genuine trees from the root and down to input literals.

This optim consists in forcing the maximum number of undefined kids for each possible output value of the gates

For And(kids): - assert (o = 0) => nofKid(?) >= g.nofKids-1 - assert (o = ?) => nofKids(?) >= g.nofKids

For Or(kids): - assert (o = 1) => nofKid(?) >= g.nofKids-1 - assert (o = ?) => nofKids(?) >= g.nofKids

For Ite: - assert (o = 0) => optFalse,

with: - define optFalse := And(optFalseFalse, optFalseTrue, optFalseUndef)

with: - define optFalseFalse := (s = 0) => (t = ? and f = 0) - define optFalseTrue := (s = 1) => (t = 0 and f = ?) - define optFalseUndef := (s = ?) => (t = ? and f = ?)

And - assert (o = 1) => optTrue

with: - define optTrue := And( optTrueFalse, optTrueTrue, optTrueUndef )

with: - define optTrueFalse := (s = 0) => (t = ? and f = 1) - define optTrueTrue := (s = 1) => (t = 1 and f = ?) - define optTrueUndef := (s = ?) => (t = 1 and f = 1)

And - assert (o = ?) => optUndef

with: - define optUndef := (t = ? and f = ?)

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProperTreeOptimEncoder
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ProperTreeOptimEncoder(nnf: Expr, circuit: FormulaLike, primaryEncoder: NNFToCircuitEncoder, witnessEncoder: WitnessEncoder, drFormula: FormulaLike, drEncoder: DualRailEncoder)

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. val circuit: FormulaLike

    Permalink
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. val drEncoder: DualRailEncoder

    Permalink
  8. val drFormula: FormulaLike

    Permalink
  9. def encode(): Unit

    Permalink

    Encodes the optimization formulae.

  10. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. val nnf: Expr

    Permalink
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. val primaryEncoder: NNFToCircuitEncoder

    Permalink
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  20. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. val witnessEncoder: WitnessEncoder

    Permalink

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped