Package apron

Class Pplite


public class Pplite extends Manager
Manager factory for the PPLite domains.
  • Constructor Details

    • Pplite

      public Pplite(boolean strict)
      Creates a new manager to create and manipulate convex polyhedra. using the PPLite library.

      If strict is true, then the domain can express strict inequalities, i.e., non-closed convex polyhedra. Otherwise, the domain expresses closed convex polyhedra.

  • Method Details

    • setKind

      public void setKind(String name)
      Sets specific implementation of polyhedra domain; this should be called before creating objects, since the different implementations are incompatible.

      Accepted values: "Poly" (default), "F_Poly", "U_Poly", "UF_Poly", "P_Set", "FP_Set".

    • getKind

      public String getKind()
    • setWidenSpec

      public void setWidenSpec(String name)
      Sets the widening specification used by domains; legal values are: - "safe": the Cousot and Cousot POPL77 specification, which does not assume the inclusion between arguments; - "risky": the Cousot and Cousot PLILP92 footnote 6 alternative specification, assuming the inclusion between arguments.
    • getWidenSpec

      public String getWidenSpec()
    • split

      public Abstract0 split(Abstract0 a, Lincons0 c, boolean integral, boolean strict)
      Splits element a using (non-interval) linear inequality constraint c. The return value is computed by adding the complement of c to element a, whereas a itself is updated by adding constraint c. If parameter integral is true, then the constraint c is assumed to evaluate to an integral value and refined accordingly; e.g., (x < 5) is refined into (x ≤ 4) and its complement is computed as (x ≥ 5). If parameter integral is false, a rational split is computed; in this case, if strict is false then the complement of a lose constraint is still lose; strict splits require a strict manager.
    • isDisjunctive

      public boolean isDisjunctive(Abstract0 a)
      Returns true if a is a disjunctive abstract element
    • getNumDisjuncts

      public int getNumDisjuncts(Abstract0 a)
      Returns the number of disjuncts in a
    • toDisjunctLincons

      public Lincons0[] toDisjunctLincons(Abstract0 a, int n) throws ApronException
      Returns a set of linear constraints for the n-tn disjunct of a
      Throws:
      ApronException
    • toDisjunctTcons

      public Tcons0[] toDisjunctTcons(Abstract0 a, int n) throws ApronException
      Returns a set of constraints for the n-tn disjunct of a
      Throws:
      ApronException
    • collapse

      public void collapse(Abstract0 a, int n) throws ApronException
      Modifies a to have at most n disjuncts.
      Throws:
      ApronException
    • isGeomSubsetEq

      public boolean isGeomSubsetEq(Abstract0 a1, Abstract0 a2) throws ApronException
      Geometric inclusion test
      Throws:
      ApronException