package G4ip;+ −
+ −
import java.util.Vector;+ −
import G4ip.Form.*;+ −
+ −
/** Context acts as a multiset.<p>+ −
* Typical contexts in logical rules are Gamma, Delta, etc.+ −
* @author Christian Urban+ −
*/+ −
public class Context extends Vector {+ −
+ −
public Context() { super(); }+ −
+ −
public Context(Context init_context) {+ −
super();+ −
for (int i=0;i<init_context.size();i++) {+ −
addElement(init_context.elementAt(i));+ −
}+ −
}+ −
+ −
/** should be toString, but this is a "final" method in Vector + −
*/+ −
public String makeString() {+ −
String s = new String();+ −
int i; // size()-1 because the last formula+ −
for (i=0;i<size()-1;i++) { // should be printed without a comma+ −
s=s.concat(elementAt(i).toString());+ −
s=s.concat(", ");+ −
}+ −
if (size() > 0) { // add last formula + −
s=s.concat(elementAt(i).toString()); + −
}+ −
return s;+ −
}+ −
+ −
/** returns a context with one additional formula at the beginning + −
* @param new_formula a formula+ −
*/+ −
public Context add(Form new_formula) {+ −
Context new_c = new Context(this);+ −
new_c.insertElementAt(new_formula,0);+ −
return new_c;+ −
}+ −
+ −
/** returns a context with two additional formulae at the beginning + −
* @param new_formula1,new_formula2 two formulae+ −
*/+ −
public Context add(Form new_formula1, Form new_formula2) {+ −
Context new_c = new Context(this);+ −
new_c.insertElementAt(new_formula1,0);+ −
new_c.insertElementAt(new_formula2,0);+ −
return new_c;+ −
}+ −
+ −
/** tests whether a context contains a specific atom + −
* @param a a formula+ −
*/+ −
public boolean includes(Form a) {+ −
if (a instanceof Atm) {+ −
for (int i=0;i<size();i++) {+ −
switch((Form)elementAt(i)) {+ −
case Atm(String c):+ −
if (c.compareTo(((Atm)a).c) == 0) return true; break;+ −
}+ −
}+ −
}+ −
return false;+ −
}+ −
+ −
}+ −