package warnings; import utilities.Pair; public class PrimitiveFormula extends Formula { PrimitiveFormulaType primitiveType; Operand[] operands; Relation rel; boolean negated; public PrimitiveFormula(Term t1, Term t2, Relation rel) { negated = false; type = FormulaType.primitive; primitiveType = PrimitiveFormulaType.relation; operands = new Operand[2]; operands[0] = t1; operands[1] = t2; this.rel = rel; } public PrimitiveFormula(boolean value) { type = FormulaType.primitive; if (value) { primitiveType = PrimitiveFormulaType.sat; } else { primitiveType = PrimitiveFormulaType.unsat; } } public PrimitiveFormula(Term term, GroundSet gset) { type = FormulaType.primitive; operands = new Operand[2]; negated = false; operands[0] = term; operands[1] = gset; primitiveType = PrimitiveFormulaType.membership; } @Override public Pair<Formula, Formula> getFirstConjunct() { return new Pair<Formula, Formula>(this, null); } @Override public String toString() { if (this.primitiveType == PrimitiveFormulaType.sat) { return "true"; } else if (this.primitiveType == PrimitiveFormulaType.unsat) { return "false"; } else { String separator=(this.primitiveType==PrimitiveFormulaType.membership)?" in ": " "+this.rel.toString()+" "; StringBuilder result = new StringBuilder(); if(this.negated) { result.append("not"); } result.append("("); result.append(this.operands[0].toString()); result.append(separator); result.append(this.operands[1].toString()); result.append(")"); if(this.negated) { result.append(")"); } return result.toString(); } } }