**ABSTRACT**

The objective of this paper is two-fold. First we present a methodology for using a combination of computer assistance and human intervention to discover highly algebraic theorems in operator, matrix and linear systems engineering theory. Since the methodology allows limited human intervention, it is slightly less rigid than an algorithm. We call it a strategy. The second objective is to illustrate the methodology by deriving 4 theorems.

The presentation of the methodology is carried out in three steps. The first step is introducing an abstraction of the methodology which we call an idealized strategy. This abstraction facilitates a high level discussion of the ideas involved. Idealized strategies cannot be implemented on a computer. The second and third steps introduce approximations of these abstractions which we call prestrategy and strategy, respectively. The third step is introducing an approximation of these abstractions and is called a strategy. A strategy is more general than a prestrategy and, in fact, every prestrategy is a strategy.

The above mentioned approximations are
implemented on a computer.
We stress that, since
there is a computer implementation, the reader can
__ these techniques to attack their own
algebra problems.
Thus the paper might be of both practical
and theoretical interest to
analysts, engineers and algebraists.
__

Now we give the idea of a prestrategy. A prestrategy relies almost entirely on two commands which we call NCProcess1 and NCProcess2. These two commands are sufficiently powerful so that, in many cases, when one applies them repeatedly to a complicated collection of equations, they transform the collection of equations into an equivalent but substantially simpler collection of equations. A loose description of a prestrategy applied to a list of equations is:

- (1) Declare which variables are known and which are unknown At the beginning of a prestrategy, the order in which the equations are listed is not important, since NCProcess1 and NCProcess2 will reorder them so that the simplest ones appear first.
- (2) Apply NCProcess1 to the equations; the output is a set of equations, usually some in fewer unknowns than before, carefully partitioned based upon which unknowns they contain.
- (3)
The user must select ``important equations'' especially
any which solve for an unknown, say
*x*. (When an equation is declared to be important or a variable is switched from being an unknown to being a known, then the way in which NCProcess1 and NCProcess2 reorder the equations is modified.) - (4)
Switch
*x*to be known rather than being unknown. Go to (2) above or stop.

When this procedure stops, it hopefully gives the ``canonical'' necessary conditions for the original equations to have a solution. As a final step we run NCProcess2 which aggressively eliminates redundant equations and partitions the output equations in a way which facilitates proving that the necessary conditions are also sufficient.

Many classical theorems in analysis can be viewed in terms of solving a collection of equations. We have found that this procedure actually discovers the classic theorem in a modest collection of classic cases involving factorization of engineering systems and matrix completion problems. One might regard the pursuit of determining which classical theorems in analysis can be proven with a strategy as an analog to classical euclidean geometry where a major question was what can be constructed with a compass and ruler. Here the goal is to determine which theorems in systems and operator theory could be discovered by repeatedly applying of NCProcess1 and NCProcess2 (or their successors) and the (human) selection of equations which are important.

The major practical challenge addressed here is finding operations which, when implemented in software, present the user with crucial algebraic information about his problem while not overwhelming him with too much redundant information.

This paper consists of two parts.

A description of strategies, a high-level description of the algorithms, a description of the applications to operator, matrix and linear system engineering theory and a description of how one would use a strategy to ``discover'' four different theorems are presented in the first part of the paper. Thus, one who seeks a conventional viewpoint for this rather unconventional paper might think of this as providing a unified proof of four different theorems. The theorems were selected for their diverse proofs, and because they are widely known (so many readers should be familiar with at least one of them).

The NCProcess commands use noncommutative Gröbner Basis algorithms
which have emerged in the last decade, together with algorithms
for removing redundant equations and a method for
assisting a mathematician in writing a (noncommutative)
polynomial
as a composition of polynomials.
The reader needs to know __ about
Gröbner Basis
to understand the first part of this paper.
__

Descriptions involving the theory of Gröbner Basis appear in the second part of the paper.

- Introduction
- Prestrategy
- Example: The Bart-Gohberg-Kaashoek-Van Dooren Theorem
- Examples: Matrix Completion Problems
- Strategies and motivated unknowns
- Example: Solving the Control Problem
- Monomial orders
- Summary
- Appendix to Part I: More details on NCCollectOnVariables

Wed Jul 3 10:27:42 PDT 1996