private void absorbSubClass(final ATermAppl sub, final ATermAppl sup, final Set<ATermAppl> axiomExplanation) { _subLogger.fine(() -> "Absorb: subClassOf(" + ATermUtils.toString(sub) + ", " + ATermUtils.toString(sup) + ")"); final HashSet<ATermAppl> set = new HashSet<>(); set.add(ATermUtils.nnf(sub)); set.add(ATermUtils.nnf(ATermUtils.makeNot(sup))); // *********************************** // Explanation-related axiom tracking: // This is used in absorbII() where actual absorption takes place // with primitive definition _explanation = new HashSet<>(); _explanation.addAll(axiomExplanation); // *********************************** absorbTerm(set); }
private void absorbSubClass(final ATermAppl sub, final ATermAppl sup, final Set<ATermAppl> axiomExplanation) { _subLogger.fine(() -> "Absorb: subClassOf(" + ATermUtils.toString(sub) + ", " + ATermUtils.toString(sup) + ")"); final HashSet<ATermAppl> set = new HashSet<>(); set.add(ATermUtils.nnf(sub)); set.add(ATermUtils.nnf(ATermUtils.makeNot(sup))); // *********************************** // Explanation-related axiom tracking: // This is used in absorbII() where actual absorption takes place // with primitive definition _explanation = new HashSet<>(); _explanation.addAll(axiomExplanation); // *********************************** absorbTerm(set); }
private boolean absorbVI(final Set<ATermAppl> set) { for (final ATermAppl term : set) { final ATermAppl nnfterm = ATermUtils.nnf(term); if (nnfterm.getAFun().equals(ATermUtils.ORFUN)) { set.remove(term); for (ATermList orlist = (ATermList) nnfterm.getArgument(0); !orlist.isEmpty(); orlist = orlist.getNext()) { final Set<ATermAppl> cloned = new HashSet<>(set); cloned.add((ATermAppl) orlist.getFirst()); absorbTerm(cloned); } return true; } } return false; }
private boolean absorbVI(final Set<ATermAppl> set) { for (final ATermAppl term : set) { final ATermAppl nnfterm = ATermUtils.nnf(term); if (nnfterm.getAFun().equals(ATermUtils.ORFUN)) { set.remove(term); for (ATermList orlist = (ATermList) nnfterm.getArgument(0); !orlist.isEmpty(); orlist = orlist.getNext()) { final Set<ATermAppl> cloned = new HashSet<>(set); cloned.add((ATermAppl) orlist.getFirst()); absorbTerm(cloned); } return true; } } return false; }