Changes between Version 2 and Version 3 of Things To Do


Ignore:
Timestamp:
01/23/10 16:23:02 (16 years ago)
Author:
Stephen Siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Things To Do

    v2 v3  
    11= Things To Do =
     2
     3== General ==
    24
    35 * change names of MiniMP to TASS throughout project
     
    68 * achieve much better statement and branch coverage in JUnit tests
    79 * create separate test tree which mirrors the source tree but contains only JUnit tests
     10
     11== Symbolic Module ==
     12
     13Consider re-designing the symbolic module based on lessons learned.
     14
     15First, is the assumption argument necessary?   Is it ever used for anything?  How about removing it?
     16
     17Then we can separate entirely the code for manipulating symbolic expressions from the code responsible for proving things and simplifying expressions based on an assumption.
     18
     19How about multiple layers for the symbolic package:
     20
     21 1.  Layer 0: Herbrand arithmetic.   No simplifications of anything.  This just produces new symbolic expressions based on the given arguments.  Straightforward factory; operator, arguments type of thing.
     22 1.  Layer 1: Very basic simplifications only, such as  x+0->x, 1*x->x, x+y->y+x.  Integers commutative/associative, etc.  All of which are applicable to IEEE arithmetic.   Place boolean expressions in canonical form, such as CNF?
     23 1.  Layer 2: rational canonical form for real expressions.  Valid for real arithmetic but does not necessarily preserve IEEE arithmetic.
     24
     25Each layer could implement the same interface, SymbolicUniverseIF. 
     26
     27Add: a SymbolicSimplifierIF interface and a TheoremProverIF interface.
     28
     29So, the following are the items exported by the symbolic module:
     30
     31 * {{{SymbolicUniverseIF}}}
     32   * methods for creating and manipulating symbolic expressions
     33   * {{{SymbolicExpressionIF}}} and all kinds of subtypes, operators, and so on
     34 * {{{SymbolicSimplifierIF}}}
     35   * see the simplifier class currently in the value package
     36 * {{{TheoremProverIF}}}
     37   * {{{boolean valid(BooleanSymbolicExpressionIF assumption, BooleanSymbolicExpressionIF predicate);}}}
     38
     39
     40