@Override public boolean addDef(final ATermAppl axiom) { boolean added = false; final ATermAppl name = (ATermAppl) axiom.getArgument(0); TermDefinition td = getTD(name); if (td == null) { td = new TermDefinition(); _termhash.put(name, td); } added = td.addDef(axiom); if (added && _termsToNormalize != null) _termsToNormalize.add(name); return added; }
@Override public boolean addDef(final ATermAppl axiom) { boolean added = false; final ATermAppl name = (ATermAppl) axiom.getArgument(0); TermDefinition td = getTD(name); if (td == null) { td = new TermDefinition(); _termhash.put(name, td); } added = td.addDef(axiom); if (added && _termsToNormalize != null) _termsToNormalize.add(name); return added; }
public boolean addDef(final ATermAppl def) { final ATermAppl name = (ATermAppl) def.getArgument(0); if (_termhash.containsKey(name)) getTD(name).addDef(def); else { final TermDefinition td = new TermDefinition(); td.addDef(def); _termhash.put(name, td); } return true; }
public boolean addDef(final ATermAppl def) { final ATermAppl name = (ATermAppl) def.getArgument(0); if (_termhash.containsKey(name)) getTD(name).addDef(def); else { final TermDefinition td = new TermDefinition(); td.addDef(def); _termhash.put(name, td); } return true; }
public boolean addIfUnfoldable(final ATermAppl term) { final ATermAppl name = (ATermAppl) term.getArgument(0); if (!ATermUtils.isPrimitive(name)) return false; TermDefinition td = getTD(name); if (td == null) td = new TermDefinition(); // Basic Check if (!td.isUnique(term)) return false; // Loop Checks final ATermAppl body = (ATermAppl) term.getArgument(1); final Set<ATermAppl> nameDependencies = td.getDependencies(); final Set<ATermAppl> bodyDependencies = ATermUtils.findPrimitives(body); if (!nameDependencies.containsAll(bodyDependencies)) { final Set<ATermAppl> seen = new IdentityHashSet<>(); // Identity hashSet because dependencies are manage on identity hash set for (final ATermAppl current : bodyDependencies) if (findTarget(current, name, seen)) return false; } return addDef(term); }
public boolean addIfUnfoldable(final ATermAppl term) { final ATermAppl name = (ATermAppl) term.getArgument(0); if (!ATermUtils.isPrimitive(name)) return false; TermDefinition td = getTD(name); if (td == null) td = new TermDefinition(); // Basic Check if (!td.isUnique(term)) return false; // Loop Checks final ATermAppl body = (ATermAppl) term.getArgument(1); final Set<ATermAppl> nameDependencies = td.getDependencies(); final Set<ATermAppl> bodyDependencies = ATermUtils.findPrimitives(body); if (!nameDependencies.containsAll(bodyDependencies)) { final Set<ATermAppl> seen = new IdentityHashSet<>(); // Identity hashSet because dependencies are manage on identity hash set for (final ATermAppl current : bodyDependencies) if (findTarget(current, name, seen)) return false; } return addDef(term); }