git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1607
e59a4935-1847-0410-ae03-
e826735625c1
.PHONY: clean
+rr.a: $(OBJS)
+ $(RM) $@
+ $(AR) qcs $@ $^
+
rewrite: $(OBJS) $(TOP)lib/libstp.a
- $(CXX) $(CXXFLAGS) $@.o -o $@ -lstp #--static
+ $(CXX) $(CXXFLAGS) $@.o -o $@ -lstp --static
rewrite.o: rewrite.cpp Functionlist.h rewrite_rule.h rewrite_system.h VariableAssignment.h
$(CXX) $(CXXFLAGS) rewrite.cpp -c
upload: rewrite
strip ./rewrite
scp -C ./rewrite rimmer.csse.unimelb.edu.au:/home/pgrad/thansen
+ scp -C rules_new.smt2 rimmer.csse.unimelb.edu.au:/home/pgrad/thansen
lookups_invalid = false;
}
+ // Remove syntactically the same rewrite rules. Remove the rule verified to a lower level.
void
eraseDuplicates()
{
toWrite.sort();
- toWrite.unique();
+ for (RewriteRuleContainer::iterator it = toWrite.begin(); it != toWrite.end(); )
+ {
+ RewriteRuleContainer::iterator next = it;
+ next++;
+ if (next == toWrite.end())
+ {
+ it++;
+ continue;
+ }
+
+ if (*next == *it)
+ {
+ // The same, erase the one with the lowest verified to bits.
+ bool output =false;
+ if (next->getVerifiedToBits() != it->getVerifiedToBits())
+ output=true;
+
+ if (next->getVerifiedToBits() > it->getVerifiedToBits())
+ {
+ if (output)
+ {
+ cerr << "deleting";
+ it->writeOut(cerr);
+ next->writeOut(cerr);
+ cerr << "====";
+ }
+ erase(it);
+ it = next;
+ continue;
+ }
+ else
+ {
+ if (output)
+ {
+ cerr << "deleting";
+ next->writeOut(cerr);
+ it->writeOut(cerr);
+ cerr << "====";
+ }
+ erase(next);
+ continue;
+ }
+ }
+ it++;
+ }
+
lookups_invalid = true;
}
return rename_then_rewrite(n, Rewrite_rule::getNullRule());
}
+
void
rewriteAll()
{