Search in sources :

Example 1 with CTrue

use of org.logicng.formulas.CTrue in project ITSTools by lip6.

the class GalToLogicNG method toGal.

private BooleanExpression toGal(Formula f) {
    if (f instanceof Variable) {
        Variable v = (Variable) f;
        return EcoreUtil.copy(map.get(v.name()));
    } else if (f instanceof org.logicng.formulas.Or) {
        org.logicng.formulas.Or or = (org.logicng.formulas.Or) f;
        BooleanExpression res = GalFactory.eINSTANCE.createFalse();
        for (Formula elt : or) {
            res = GF2.or(res, toGal(elt));
        }
        return res;
    } else if (f instanceof org.logicng.formulas.And) {
        org.logicng.formulas.And and = (org.logicng.formulas.And) f;
        BooleanExpression res = GalFactory.eINSTANCE.createTrue();
        for (Formula elt : and) {
            res = GF2.and(res, toGal(elt));
        }
        return res;
    } else if (f instanceof Literal) {
        Literal l = (Literal) f;
        return GF2.not(toGal(l.variable()));
    } else if (f instanceof org.logicng.formulas.Not) {
        org.logicng.formulas.Not l = (org.logicng.formulas.Not) f;
        return GF2.not(toGal(l.operand()));
    } else if (f instanceof CFalse) {
        return GalFactory.eINSTANCE.createFalse();
    } else if (f instanceof CTrue) {
        return GalFactory.eINSTANCE.createTrue();
    } else {
        System.out.println("error");
    }
    return null;
}
Also used : Variable(org.logicng.formulas.Variable) Or(fr.lip6.move.gal.Or) CTrue(org.logicng.formulas.CTrue) Formula(org.logicng.formulas.Formula) BooleanExpression(fr.lip6.move.gal.BooleanExpression) Not(fr.lip6.move.gal.Not) And(fr.lip6.move.gal.And) Literal(org.logicng.formulas.Literal) CFalse(org.logicng.formulas.CFalse)

Example 2 with CTrue

use of org.logicng.formulas.CTrue in project ITSTools by lip6.

the class ToLogicNG method toLogic.

private BooleanExpression toLogic(Formula f) {
    if (f instanceof Variable) {
        Variable v = (Variable) f;
        return EcoreUtil.copy(map.get(v.name()));
    } else if (f instanceof org.logicng.formulas.Or) {
        org.logicng.formulas.Or or = (org.logicng.formulas.Or) f;
        Or oc = LogicFactory.eINSTANCE.createOr();
        oc.setLeft(LogicFactory.eINSTANCE.createFalse());
        for (Formula elt : or) {
            oc.setRight(toLogic(elt));
            Or oc2 = LogicFactory.eINSTANCE.createOr();
            oc2.setLeft(oc);
            oc = oc2;
        }
        return oc.getLeft();
    } else if (f instanceof org.logicng.formulas.And) {
        org.logicng.formulas.And or = (org.logicng.formulas.And) f;
        And oc = LogicFactory.eINSTANCE.createAnd();
        oc.setLeft(LogicFactory.eINSTANCE.createTrue());
        for (Formula elt : or) {
            oc.setRight(toLogic(elt));
            And oc2 = LogicFactory.eINSTANCE.createAnd();
            oc2.setLeft(oc);
            oc = oc2;
        }
        return oc.getLeft();
    } else if (f instanceof Literal) {
        Literal l = (Literal) f;
        Not n = LogicFactory.eINSTANCE.createNot();
        n.setValue(toLogic(l.variable()));
        return n;
    } else if (f instanceof org.logicng.formulas.Not) {
        org.logicng.formulas.Not l = (org.logicng.formulas.Not) f;
        Not n = LogicFactory.eINSTANCE.createNot();
        n.setValue(toLogic(l.operand()));
        return n;
    } else if (f instanceof CFalse) {
        return LogicFactory.eINSTANCE.createFalse();
    } else if (f instanceof CTrue) {
        return LogicFactory.eINSTANCE.createTrue();
    } else {
        System.out.println("error");
    }
    return null;
}
Also used : Variable(org.logicng.formulas.Variable) Or(fr.lip6.move.gal.logic.Or) CTrue(org.logicng.formulas.CTrue) Formula(org.logicng.formulas.Formula) Not(fr.lip6.move.gal.logic.Not) And(fr.lip6.move.gal.logic.And) Literal(org.logicng.formulas.Literal) CFalse(org.logicng.formulas.CFalse)

Aggregations

CFalse (org.logicng.formulas.CFalse)2 CTrue (org.logicng.formulas.CTrue)2 Formula (org.logicng.formulas.Formula)2 Literal (org.logicng.formulas.Literal)2 Variable (org.logicng.formulas.Variable)2 And (fr.lip6.move.gal.And)1 BooleanExpression (fr.lip6.move.gal.BooleanExpression)1 Not (fr.lip6.move.gal.Not)1 Or (fr.lip6.move.gal.Or)1 And (fr.lip6.move.gal.logic.And)1 Not (fr.lip6.move.gal.logic.Not)1 Or (fr.lip6.move.gal.logic.Or)1