
                                  NOETHER

                                ISTVAN ORCI
                             University of Umea
                          Department of Computing
                           Logic Computing Group


   NOETHER is a parallel computer algebra theorem proving system.  Its
   basic computational model is term rewriting.
   
     A forerunner of NOETHER, called  UTRL (Umea Term Rewriting
   Laboratory), has been implemented in ML.  It is a collection of basic
   routines for term rewriting including a rewrite engine plus algorithms
   for completion and unification.   UTRL has no algebraic facilities and
   no issues of parallelity are addressed.
   
     The version currently under development is based on order-sorted
   equational rewriting.  Programming is done in C and the hardware in
   use is Intel iPSC/2 Hypercube.  (ML is still used as a specification
   language.) 
   
   NOETHER is primarily intended as a problem generator for studying:
   	* parallel rewrite, and unification algorithms and
   	* parallel computer algebra algorithms
   on one hand, and
   	* the parallel complexity of symbolic computations
   on the other.
   
     A further main goal is to develop a computer algebra system that
   supports: 
   	* deductive reasoning,
   	* computing with rewrite rules, and
   	* algorithmic computing.
   
   MAIN COMPONENTS
   
   NOETHER consists of the following main components:
   	* an interpreter,
   	* a command & programming language, called EMILY,
   	* a rewrite engine, and
   	* a collection of libraries, including
   		* a completion library,
   		* a unification library,
   		* an algebra library, and
   		* a theory library.
   
   EMILY
   
   Currently, EMILY is a tiny interactive language with limited deductive
   and algebraic facilities.  It includes a subset of C as a
   non-interactive programming language.
   
     One of the research goals is to develop EMILY to a parallel
   functional logic language with a large number of logical and algebraic
   datatypes. 
   
   REWRITE ENGINE
   
   The Rewrite Engine supports procedural attachment and mixed rewriting,
   that is, functions written in EMILY (including pure C programs) may
   participate in rewrites.
   
    Some further facilities are narrowing, associative-commutative
   matching, and matching modulo combined equational theories with
   disjoint function symbols.  
   
   COMPLETION LIBRARY
   
   Contains algorithms for basic completion and completion modulo a set
   of equations.  Furthermore, "inductionless induction" (proof by
   consistency) and "unfailing completion" are supported.
   
   UNIFICATION LIBRARY
   
   Contains algorithms for free unification, unification modulo certain
   equational theories, and unification modulo a combination of
   equational theories with disjoint function symbols.
   
   ALGEBRA LIBRARY
   
   Contains algorithms for exact integer and rational arithmetic, sums,
   products, series and limits, polynomial algebra, matrix algebra,
   algebraic simplification, and equation solving.
