# This file contains old entries moved from the TODO file to unclutter
# it 



Trivial: If no equality is present, disable AC scanning in Auto
mode. -> Done

Try copying instantiated terms (non-shared) before doing ordering
comparisons -> we can count variable occurences in the variables!
-> Subsumed by Bernd's KBO algorithm

Implement simple indexing for paramodulation. Idea: Processed clauses
get an _into_ and a _from_ index. Both are a simple PDArray_p indexed
by the top function symbol of the respective inference terms (or 0 for
variables - only in _from_ case). Each entry in the index is a
clb_objtrees, indexed by the clause, and containing all inference
positions in that clause that start with the indexed symbol.
- Should safe an enourmous amount of iteration - especially from
positions are very rare indeed! Will change generation order, though
(but not significantly). 
-> Done, and better with Fingerprint Indexing

Get rid of the ugly distinction between LHS top terms and other
terms. Now that simplification is driven from the clause level, it's
unecessary. Just annotate if a term was rewritten with a real
instance, and if not, set the flag temporarily and search for another
rewrite possibility. 
-> Done, and better

Splitting with naming!
-> Done

Finally get rid of the ugly second termbank. Just have two variable
banks per term bank, the Xs (normal variables) and the Ys (used when
distinct variables are needed. Possibly better sharing, more general
use of pointer compariasons, and ground term inserting becomes free. 
-> Done

Implements Bernd's KBO.
->Done

Generate signature fingerprint of clauses (for each symbol: 0 if it
does not occur, 1 if it occurs positively, 2 if negatively, 3 if
both). Use fingerprint to pretest subsumption (fingerprint of
subsuming clause must be subset of subsumed clause). Recompute
fingerprint if nf-date has changed. -> Done, and much better, in
feature vector indexing

Select biggest/Smallest orientable literal -> Done

More efficient (caching) LPO -> Suggestion Roberto. Cache within one
comparison. -> Done (not very well), but no improvement. Now let's
talk to Bernd about a more efficient LPO -> Done, Bernd's LPO4 makes
caching unncessary!

Simultaneous paramodulation. -> Done (for E 0.9), very good

Fix inheritance of SOS and clause types for split clauses. The code is
there, but commented out -> I have not enough CPU time to rerun tests
before CASC-19. Now fixed in E 0.8dev001

Signature extension with OCB: Standard weight and Precedence -> done

If parsing literals and clauses into terms is to slow: Extend
signature for fast access to internal symbols $eq, $neq, $null, $or,
$or_i. -> Done, and better ;-)

Literal Splitting a la Vampire (P(X) v Q(Y) -> P(X) v A1, Q(Y) v A2,
-A1 v -A2) (also works (with non-ground connection literal) if
literals are not variable disjunct) -> Done for the variable disjoint
case. 

Subsumption with Pre-Match -> Done

Literal selection as in SPASS: Select only if more than one maximal
literal. -> Done

For evaluation of clauses, do output subsumption inferences
(equivalent to rewriting). -> Done

More testruns, prefer positive literals (This is counterintuitive to
me, but seems to work for some examples). -> Done

Check unprocessed clauses for identical copies! -> Done

Rework subsumption: 
       1) Use an array to keep track of picked-level -> done
       2) Use real renaming test for subsumption -> done
       3) Does s or s subsume s or t ? -> Logically yes, but this is
          not allowed in superposition, as s or s is not a
          multi-subset of s or t!

This is strictly BLUE SKY: Do _not_ remove (all) rewritten terms, but
insert a pointer to the normal form. Construct new terms during
TBInsert directly with normal forms. -> Done, my hair grows back.

Rewriting by linking (see blue sky above). Annotate links with clauses
for reconstruction (?) -> Much of it done as part of the new rewrite
engine! 

More important: Make distribute-eprover check bug-conditions and
memory overflows! -> done

Implement a heuristic taking size and proof length into account. ->
Done!

Output of inferences/evaluations -> done
Output of rewrite steps -> done
For proof analysis and extraction: Keep track of clauses and _terms_
occuring in the proof.
--> Use internal minimal array should work...
  -> Done

Inherit selection property/Inherit paramodulation-into-property
(i.e. select always the same literal in newly generated clauses as in
the primary parent) -->done

Use selection functions based on equality status (prefer
equality/non-equality literals) --> done

Linearity as heuristic measure... -> Done

Avoid recursive descent if only NEQ units in index.
--> tried, no benefit, as we still need to update weights and normal
    form status

Select literal with minimal number of inference positions (i.e. sum of
size of maximal sides) -> Done, unimpressive

Inherit paramod-literal on goals (or potentially other clause types
(e.g. Non-Horn, or everything that cannot degenerate to a positive
unit easily)) only!  -> Done (for goals)

Select positive literals in Horn clauses, negatives only otherwise! 
-> Done, not very good

PNWeight: Give different weight to variables and function symbols
depending on wether they occur in positive or negative literals. ->
Done, sometimes ok, but not a big deal


















