protected boolean addAxiom(final ATermAppl axiom, final Set<ATermAppl> explain, final boolean forceAddition) { final boolean added = addAxiomExplanation(axiom, explain); if (added || forceAddition) if (!_Tu.addIfUnfoldable(axiom)) if (axiom.getAFun().equals(ATermUtils.EQCLASSFUN)) { // Try reversing the term if it is a 'same' construct final ATermAppl name = (ATermAppl) axiom.getArgument(0); final ATermAppl desc = (ATermAppl) axiom.getArgument(1); final ATermAppl reversedAxiom = ATermUtils.makeEqClasses(desc, name); if (!_Tu.addIfUnfoldable(reversedAxiom)) _Tg.addDef(axiom); else addAxiomExplanation(reversedAxiom, explain); } else _Tg.addDef(axiom); return added; }
protected boolean addAxiom(final ATermAppl axiom, final Set<ATermAppl> explain, final boolean forceAddition) { final boolean added = addAxiomExplanation(axiom, explain); if (added || forceAddition) if (!_Tu.addIfUnfoldable(axiom)) if (axiom.getAFun().equals(ATermUtils.EQCLASSFUN)) { // Try reversing the term if it is a 'same' construct final ATermAppl name = (ATermAppl) axiom.getArgument(0); final ATermAppl desc = (ATermAppl) axiom.getArgument(1); final ATermAppl reversedAxiom = ATermUtils.makeEqClasses(desc, name); if (!_Tu.addIfUnfoldable(reversedAxiom)) _Tg.addDef(axiom); else addAxiomExplanation(reversedAxiom, explain); } else _Tg.addDef(axiom); return added; }
private boolean absorbVII(final Set<ATermAppl> set) { ATermList list = ATermUtils.makeList(set); final ATermAppl sub = ATermUtils.nnf((ATermAppl) list.getFirst()); list = list.getNext(); ATermAppl sup = list.isEmpty() ? ATermUtils.makeNot(sub) : ATermUtils.makeNot(ATermUtils.makeAnd(list)); sup = ATermUtils.nnf(sup); final ATermAppl subClassAxiom = ATermUtils.makeSub(sub, sup); _subLogger.fine(() -> "GCI: " + subClassAxiom + "\nexplanation: " + _explanation); addDef(subClassAxiom); _tbox.addAxiomExplanation(subClassAxiom, _explanation); return true; }
private boolean absorbVII(final Set<ATermAppl> set) { ATermList list = ATermUtils.makeList(set); final ATermAppl sub = ATermUtils.nnf((ATermAppl) list.getFirst()); list = list.getNext(); ATermAppl sup = list.isEmpty() ? ATermUtils.makeNot(sub) : ATermUtils.makeNot(ATermUtils.makeAnd(list)); sup = ATermUtils.nnf(sup); final ATermAppl subClassAxiom = ATermUtils.makeSub(sub, sup); _subLogger.fine(() -> "GCI: " + subClassAxiom + "\nexplanation: " + _explanation); addDef(subClassAxiom); _tbox.addAxiomExplanation(subClassAxiom, _explanation); return true; }