public StateFormula getEquivalentFormulaWithoutNegations() {
		StateFormula condNoNegations = new StateFormula();
		
		StateFormula notNegatedFormula = this;
		
		if (this.isNegated) {
			StateLiteralClause newClause = new StateLiteralClause(); 
			for (StateLiteralClause clause : clauses) {
				if (clause.getNumberOfLiterals() > 1) {
					throw new UnsupportedOperationException("Could not negate complex formula " + this);
				}
				newClause.addLiteral((StateLiteral) clause.getFirstLiteral().getNegation());
			}
			notNegatedFormula = new StateFormula(newClause);
			System.out.println("Introduced negation in formula " + notNegatedFormula);
		}
		
		for (StateLiteralClause clause : notNegatedFormula.getClauses()) {
			StateLiteralClause newClause = new StateLiteralClause();
			for (StateLiteral lit : clause.getLiterals()) {
				if (lit.isNegated()) {
					DomainObject obj = lit.getDomainObject();
					for (ObjectState state : obj.getStates()) {
						if (!state.equals(lit.getState())) {
							newClause.addLiteral(new StateLiteral(obj, state));
						}
					}
				} else {
					newClause.addLiteral(lit);
				}
			}
			condNoNegations.addClause(newClause);
			logger.debug("No negation formula " + condNoNegations);

		}
		return condNoNegations;
	}