scale.score.dependence.omega.omegaLib
Class FExists

java.lang.Object
  extended by scale.score.dependence.omega.omegaLib.Formula
      extended by scale.score.dependence.omega.omegaLib.FDeclaration
          extended by scale.score.dependence.omega.omegaLib.FExists

public class FExists
extends FDeclaration

FExists.

$Id: FExists.java,v 1.13 2005-02-07 21:28:39 burrill Exp $

Copyright 2008 by the Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.

This version of the Omega Libray is a translation from C++ to Java of the Omega Library developed at the University of Maryland.

Copyright (C) 1994-1996 by the Omega Project

All rights reserved.

NOTICE: This software is provided ``as is'', without any warranty, including any implied warranty for merchantability or fitness for a particular purpose. Under no circumstances shall the Omega Project or its agents be liable for any use of, misuse of, or inability to use this software, including incidental and consequential damages.

License is hereby given to use, modify, and redistribute this software, in whole or in part, for any purpose, commercial or non-commercial, provided that the user agrees to the terms of this copyright notice, including disclaimer of warranty, and provided that this copyright notice, including disclaimer of warranty, is preserved in the source code and documentation of anything derived from this software. Any redistributor of this software or anything derived from this software assumes responsibility for ensuring that any parties to whom such a redistribution is made are fully aware of the terms of this license and disclaimer.

The Omega project can be contacted at omega@cs.umd.edu or http://www.cs.umd.edu/projects/omega


Field Summary
 
Fields inherited from class scale.score.dependence.omega.omegaLib.FDeclaration
myLocals
 
Fields inherited from class scale.score.dependence.omega.omegaLib.Formula
myChildren, myParent, myRelation, omegaLib, OP_AND, OP_CONJUNCT, OP_EXISTS, OP_FORALL, OP_NOT, OP_OR, OP_RELATION
 
Constructor Summary
FExists(OmegaLib omegaLib, Formula f, RelBody b)
           
FExists(OmegaLib omegaLib, Formula f, RelBody b, Vector<VarDecl> vid)
           
 
Method Summary
 void beautify()
           
 Formula copy(Formula parent, RelBody reln)
           
 VarDecl declare()
           
 VarDecl declare(java.lang.String s)
           
 VarDecl declare(VarDecl v)
           
 DNF DNFize()
          exists x : (c1 v c2 v …) -.
 Conjunct findAvailableConjunct()
           
 int nodeType()
           
 void prefixPrint(boolean debug)
           
 void print()
          Exists v: (f1 | … | fn) = (Exists v: f1) | … | (Exists v: fn).
protected  void pushExists(Vector<VarDecl> s)
          Push exists takes responsibility for the VarDecls.
 void rearrange()
          Exists v: (f1 | … | fn) = (Exists v: f1) | … | (Exists v: fn).
 
Methods inherited from class scale.score.dependence.omega.omegaLib.FDeclaration
canAddChild, declareTuple, doDeclare, locals, priority, setupAnonymousWildcardNames, setupNames
 
Methods inherited from class scale.score.dependence.omega.omegaLib.Formula
addAnd, addChild, addConjunct, addExists, addExists, addForall, addNot, addOr, andWith, assertNotFinalized, checkAndAddChild, children, combineColumns, delete, enforceLeadingInfo, getChildren, getFirstChild, invalidateLeadingInfo, numberOfChildren, olAssert, olAssert, parent, printSeparator, reallyConjunct, relation, remap, removeChild, removeFirstChild, reverseLeadingDirInfo, setFinalized, setParent, setParent, setRelation, toString, toStringClass, verifytree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FExists

public FExists(OmegaLib omegaLib,
               Formula f,
               RelBody b)

FExists

public FExists(OmegaLib omegaLib,
               Formula f,
               RelBody b,
               Vector<VarDecl> vid)
Method Detail

nodeType

public int nodeType()
Specified by:
nodeType in class Formula

declare

public VarDecl declare(java.lang.String s)
Overrides:
declare in class FDeclaration

declare

public VarDecl declare()
Specified by:
declare in class FDeclaration

declare

public VarDecl declare(VarDecl v)
Specified by:
declare in class FDeclaration

pushExists

protected void pushExists(Vector<VarDecl> s)
Description copied from class: Formula
Push exists takes responsibility for the VarDecls. It should: Re-use them, or Delete them.

Overrides:
pushExists in class Formula

copy

public Formula copy(Formula parent,
                    RelBody reln)
Specified by:
copy in class Formula

findAvailableConjunct

public Conjunct findAvailableConjunct()
Specified by:
findAvailableConjunct in class Formula

beautify

public void beautify()
Overrides:
beautify in class Formula

rearrange

public void rearrange()
Exists v: (f1 | … | fn) = (Exists v: f1) | … | (Exists v: fn).

Overrides:
rearrange in class Formula

DNFize

public DNF DNFize()
exists x : (c1 v c2 v …) -. (exists x : c1) v (exists x : c2) v ….

Specified by:
DNFize in class Formula

print

public void print()
Exists v: (f1 | … | fn) = (Exists v: f1) | … | (Exists v: fn).

Overrides:
print in class FDeclaration

prefixPrint

public void prefixPrint(boolean debug)
Overrides:
prefixPrint in class FDeclaration