edu.toronto.cs.mvset
Interface MvSet

All Known Implementing Classes:
AbstractMvSet, CUADDMvSetFactory.CUADDMvSet, JADDMvSetFactory.JADDMvSet, JCUDDBelnapMvSetFactory.JCUDDBelnapMvSet, JCUDDMvSetFactory.JCUDDMvSet, MDDMvSetFactory.MDDMvSet

public interface MvSet

A generic interface to represent a multi-valued set (mv-set)

This representation treats mv-set v as a as a function v: L^n -> L where L is a set (possibly a lattice or an algebra) and n is the arrity of the function.


Field Summary
static int EQ
          Constant for equality.
static int EXISTS
          Constant for existential quantification.
static int FORALL
          Constant for universal quantification.
static int GEQ
          Constant for lattice above comparison.
static int IMPL
          Constant for material implication.
static int INFO_AND
          Constant for bilattice information order meet.
static int INFO_OR
          Constant for bilattice information order join.
static int JOIN
          Constant for lattice join operation.
static int LEQ
          Constant for lattice below comparison.
static int MEET
          Constant for lattice meet operation.
static int NEG
          Constant for De Morgan negation.
 
Method Summary
 MvSet and(MvSet v)
          Utility functions
 MvSet cofactor(AlgebraValue[] r)
          Restricts the MvSet to a particular L^n (or set of permutations on L^n if r is not total)
 MvSet cofactor(int argIdx, AlgebraValue value)
          Restricts an argument h (x_0, x_1, x_2, ...) = f (x_0, ..., value, ...) where value is substituted at argIdx
 MvSet cofactor(MvSet point)
           
 java.util.Iterator cubeIterator()
           
 MvSet eq(MvSet v)
           
 AlgebraValue evaluate(AlgebraValue[] values)
          Evaluates this function on an input result = f (values [0], values [1], ...)
 MvSet existAbstract(MvSet cube)
           
 MvSet forallAbstract(MvSet cube)
           
 MvSet geq(MvSet v)
           
 IAlgebra getAlgebra()
          gets the lattice for the MvSet
 MvSetFactory getFactory()
          gets the factory
 java.util.BitSet getImage()
           
 java.util.Set getPreImageArray(AlgebraValue v)
          Evaluates this function with respect to a state Note that we have a small discreptancy between what we mean by states since here a state may contain primed and unprimed variables and thus represent a transition rather than a state
 AlgebraValue getValue()
           
 MvSet impl(MvSet v)
           
 MvSet infoAnd(MvSet v)
           
 MvSet infoNot()
           
 MvSet infoOr(MvSet v)
           
 boolean isConstant()
           
 MvSet leq(MvSet v)
           
 java.util.Iterator mintermIterator(MvSet vars, AlgebraValue val)
           
 MvSet not()
           
 MvSet or(MvSet v)
           
 MvSet ptwiseCompare(int op, MvSet g)
          Ptwise compare: <=, >=, =.
 MvSet ptwiseCompose(int op, MvSet g)
          Creates a pointwise composition op is an operator: L x L -> L f is the current mv-set result h (x) = f (x) op g (x)
 MvSet ptwiseNeg()
          Creates a ptwise negation h (x) = \neg f (x)
 MvSet renameArgs(int[] newArgs)
          Renames the arguments.
 void reorder()
           
 int size()
          Returns number of nodes
 DaVinciGraph toDaVinci()
           
 MvRelation toMvRelation(MvSet invar, MvSet preVarCube, MvSet postVarCube, int[] preToPostMap, int[] postToPreMap)
           
 MvRelation toMvRelation(MvSet invar, MvSet invarPost, MvSet preVarCube, MvSet postVarCube, int[] preToPostMap, int[] postToPreMap)
           
 

Field Detail

MEET

static final int MEET
Constant for lattice meet operation.

See Also:
Constant Field Values

JOIN

static final int JOIN
Constant for lattice join operation.

See Also:
Constant Field Values

NEG

static final int NEG
Constant for De Morgan negation.

See Also:
Constant Field Values

IMPL

static final int IMPL
Constant for material implication.

See Also:
Constant Field Values

GEQ

static final int GEQ
Constant for lattice above comparison.

See Also:
Constant Field Values

LEQ

static final int LEQ
Constant for lattice below comparison.

See Also:
Constant Field Values

EQ

static final int EQ
Constant for equality.

See Also:
Constant Field Values

EXISTS

static final int EXISTS
Constant for existential quantification.

See Also:
Constant Field Values

FORALL

static final int FORALL
Constant for universal quantification.

See Also:
Constant Field Values

INFO_AND

static final int INFO_AND
Constant for bilattice information order meet.

See Also:
Constant Field Values

INFO_OR

static final int INFO_OR
Constant for bilattice information order join.

See Also:
Constant Field Values
Method Detail

ptwiseCompose

MvSet ptwiseCompose(int op,
                    MvSet g)
Creates a pointwise composition op is an operator: L x L -> L f is the current mv-set result h (x) = f (x) op g (x)


ptwiseNeg

MvSet ptwiseNeg()
Creates a ptwise negation h (x) = \neg f (x)


ptwiseCompare

MvSet ptwiseCompare(int op,
                    MvSet g)
Ptwise compare: <=, >=, =.


cofactor

MvSet cofactor(int argIdx,
               AlgebraValue value)
Restricts an argument h (x_0, x_1, x_2, ...) = f (x_0, ..., value, ...) where value is substituted at argIdx


cofactor

MvSet cofactor(AlgebraValue[] r)
Restricts the MvSet to a particular L^n (or set of permutations on L^n if r is not total)


cofactor

MvSet cofactor(MvSet point)

existAbstract

MvSet existAbstract(MvSet cube)

forallAbstract

MvSet forallAbstract(MvSet cube)

renameArgs

MvSet renameArgs(int[] newArgs)
Renames the arguments. newArgs is a map from old args to new so that h (x) = f (newArgs [0], newArgs [1], ...)


evaluate

AlgebraValue evaluate(AlgebraValue[] values)
Evaluates this function on an input result = f (values [0], values [1], ...)


getPreImageArray

java.util.Set getPreImageArray(AlgebraValue v)
Evaluates this function with respect to a state Note that we have a small discreptancy between what we mean by states since here a state may contain primed and unprimed variables and thus represent a transition rather than a state


getFactory

MvSetFactory getFactory()
gets the factory


getAlgebra

IAlgebra getAlgebra()
gets the lattice for the MvSet


getImage

java.util.BitSet getImage()

reorder

void reorder()

size

int size()
Returns number of nodes


and

MvSet and(MvSet v)
Utility functions


or

MvSet or(MvSet v)

not

MvSet not()

leq

MvSet leq(MvSet v)

geq

MvSet geq(MvSet v)

eq

MvSet eq(MvSet v)

impl

MvSet impl(MvSet v)

infoAnd

MvSet infoAnd(MvSet v)

infoOr

MvSet infoOr(MvSet v)

infoNot

MvSet infoNot()

isConstant

boolean isConstant()

getValue

AlgebraValue getValue()

cubeIterator

java.util.Iterator cubeIterator()

mintermIterator

java.util.Iterator mintermIterator(MvSet vars,
                                   AlgebraValue val)

toDaVinci

DaVinciGraph toDaVinci()

toMvRelation

MvRelation toMvRelation(MvSet invar,
                        MvSet preVarCube,
                        MvSet postVarCube,
                        int[] preToPostMap,
                        int[] postToPreMap)

toMvRelation

MvRelation toMvRelation(MvSet invar,
                        MvSet invarPost,
                        MvSet preVarCube,
                        MvSet postVarCube,
                        int[] preToPostMap,
                        int[] postToPreMap)