package hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.formulacanonization import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term import org.eclipse.emf.ecore.util.EcoreUtil import java.util.LinkedList import java.util.List import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable import org.eclipse.xtend.lib.annotations.Data @Data class Clause { List atomicExpressions } /** * Rewrites a term to a first order CNF, where F *

* * * * * *
Symbol->expression
F->Quantified (∨ Quantified)*
Quantified->(∃x Quantified) | Clause
Clause-> Atomic (∧ Atomic)*
Atomic-> Type(x) | Path (x,y) | x==y | x!=y | F | ¬F

*/ class FormulaRewriter { public def rewriteExpression(Term expression) { val termToRewrite = EcoreUtil.copy(expression ) } public def internalRewriteExpression(Term expression) { val List quantifiedVariables = new LinkedList val List clauses = new LinkedList } }