edu.toronto.cs.mvset
Interface MvSet

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

public interface MvSet

This is a generic interface that represents an mvset. We treat an mvset as a function from L^n -> L where L is a set (possibly a lattice) and n is the arrity of the function


Field Summary
static int EQ
           
static int EXISTS
           
static int FORALL
           
static int GEQ
           
static int IMPL
           
static int INFO_AND
           
static int INFO_OR
           
static int JOIN
           
static int LEQ
           
static int MEET
           
static int NEG
           
 
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)
           
 

Field Detail

MEET

static final int MEET
See Also:
Constant Field Values

JOIN

static final int JOIN
See Also:
Constant Field Values

NEG

static final int NEG
See Also:
Constant Field Values

IMPL

static final int IMPL
See Also:
Constant Field Values

GEQ

static final int GEQ
See Also:
Constant Field Values

LEQ

static final int LEQ
See Also:
Constant Field Values

EQ

static final int EQ
See Also:
Constant Field Values

EXISTS

static final int EXISTS
See Also:
Constant Field Values

FORALL

static final int FORALL
See Also:
Constant Field Values

INFO_AND

static final int INFO_AND
See Also:
Constant Field Values

INFO_OR

static final int INFO_OR
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)