<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<meta name="author" content="Anna Fabia&#324;ska and Alban Quadrat" />
<title>Applications of the Quillen-Suslin theorem to multidimensional systems theory</title>
<link rel="stylesheet" href="tralics.css" />
<meta name="keywords" content="Constructive versions of the Quillen-Suslin theorem, Lin-Bose´s conjecture, multidimensional linear systems, flat systems, (weakly) doubly coprime factorizations of rational transfer matrices, factorization and decomposition of linear functional systems, symbolic computation." />
</head><body><h1>Applications of the Quillen-Suslin theorem to multidimensional systems theory</h1><p>French title: Applications du théorème de Quillen-Suslin à la théorie des systèmes multidimensionnels</p><p> Author: Anna Fabia&#324;ska<a id="uid1" href="#note1" title="Lehrstuhl B für Mathematik RWTH - Aachen, Templergraben 64, 52056 Aachen, Germany fabianska@momo.mat..."><small>(note: </small>&#10163;<small>)</small></a> and Alban Quadrat<a id="uid2" href="#note2" title="INRIA Sophia Antipolis, APICS project, 2004 Route des Lucioles BP 93, 06902 Sophia Antipolis Cedex, ..."><small>(note: </small>&#10163;<small>)</small></a></p><p> Location: Sophia Antipolis</p><p>Inria Research Theme: THnum</p><p>Inria Research Report Number: 6126</p><p> Team: APICS</p><p> Date: February 2007</p><p>Keywords: Constructive versions of the Quillen-Suslin theorem, Lin-Bose´s conjecture, multidimensional linear systems, flat systems, (weakly) doubly coprime factorizations of rational transfer matrices, factorization and decomposition of linear functional systems, symbolic computation..</p><p>French keywords: Versions constructives du théorème de Quillen-Suslin, conjecture de Lin-Bose, systèmes linéaires multidimensionnels, systèmes plats, factorisations doublement (faiblement) copremières de matrices de transfert rationnelles, factorisation et décomposition des systèmes linéaires fonctionnels, calcul formel..</p><h2>Abstract</h2><p>The purpose of this paper is to give four new applications of the Quillen-Suslin theorem to mathematical systems theory. Using a constructive version of the Quillen-Suslin theorem, also known as Serre´s conjecture, we show how to effectively compute flat outputs and injective parametrizations of flat multidimensional linear systems. We prove that a flat multidimensional linear system is algebraically equivalent to the controllable 1-D dimensional linear systems obtained by setting all but one functional operator to zero in the polynomial matrix defining the system. In particular, we show that a flat ordinary differential time-delay linear system is algebraically equivalent to the corresponding ordinary differential system without delay, i.e., the controllable ordinary differential linear system obtained by setting all the delay amplitudes to zero. We also give a constructive proof of a generalization of Serre´s conjecture known as Lin-Bose´s conjecture. Moreover, we show how to constructively compute (weakly) left-/right-/doubly coprime factorizations of rational transfer matrices over a commutative polynomial ring. The Quillen-Suslin theorem also plays a central part in the so-called decomposition problem of linear functional systems studied in the literature of symbolic computation. In particular, we show how the basis computation of certain free modules, coming from projectors of the endomorphism ring of the module associated with the system, allows us to obtain unimodular matrices which transform the system matrix into an equivalent block-triangular or a block-diagonal form.
Finally, we demonstrate the package <span class="smallcap">QuillenSuslin</span> which, to our knowledge, contains the first implementation of the Quillen-Suslin theorem in a computer algebra system as well as the different algorithms developed in the paper.</p>
<h2>French Abstract</h2><p>Le but de ce papier est de donner quatre nouvelles applications du théorème de Quillen-Suslin à la théorie mathématique des systèmes. A l´aide d´une version constructive du théorème de Quillen-Suslin, aussi connu sous le nom de conjecture de Serre, nous montrons comment calculer de manière effective les sorties plates et les paramétrisations injectives des systèmes linéaires multidimensionnels plats. Nous prouvons que tout système linéaire multidimensionnel plat est algébriquement équivalent aux systèmes linéaires 1-D contrôlables obtenus par annulation de tous les opérateurs fonctionnels sauf un dans la matrice polynômiale définissant le système. En particulier, nous montrons que tout système linéaire différentiel à retard plat est algébriquement équivalent au système différentiel sans retard, c´est-à-dire, au système linéaire contrôlable d´équations différentielles obtenu en annulant les amplitudes des retards. Nous donnons aussi une preuve constructive d´une généralisation de la conjecture de Serre appelée conjecture de Lin-Bose. De plus, nous montrons comment calculer de manière effective des factorisations (faiblement) copremières à gauche et à droite de matrices de transfert rationnelles sur une algèbre commutative de polynômes. Le théorème de Quillen-Suslin joue aussi un rôle important dans l´étude du problème de décomposition des systèmes linéaires fonctionnels étudié dans la littérature du calcul formel. En particulier, nous montrons comment le calcul de bases de certains modules libres, provenant de projecteurs de l´anneau des endomorphismes du module associé au système, nous permet de calculer des matrices unimodulaires qui transforment la matrice du système en une matrice équivalente ayant une forme bloc-triangulaire ou bloc-diagonale. Finalement, nous décrivons le logiciel <span class="smallcap">QuillenSuslin</span> qui, à notre connaissance, contient la première implémentation du théorème de Quillen-Suslin dans un système de calcul formel, ainsi que les différents algorithmes obtenus dans le papier.</p>
<p>Note: The first author is very grateful to W. Plesken for his support.
She would also like to express thanks to F. Castro-Jimenez and J. Gago-Vargas
for the opportunity to discuss with them on the Quillen-Suslin theorem and to A. van den Essen for
pointing out to her an interesting example that has been included in the paper..</p><p>Note: The second author would like to thank Y. Lam, T. Coquand, H. Lombardi and I. Yengui for interesting discussions on the Quillen-Suslin theorem and Z. Lin and H. Park for discussions on applications of the Quillen-Suslin theorem to mathematical systems theory, control theory and signal processing..</p><hr /><h1>Short Table of Contents</h1><p>
<br /><b>1. <a href="#uid3">Introduction</a></b>
<br /><b>2. <a href="#uid5">A module-theoretic approach to systems theory</a></b>
<br /><b>3. <a href="#uid61">The Quillen-Suslin theorem</a></b>
<br /><b>4. <a href="#uid127">Flat multidimensional linear systems</a></b>
<br /><b>5. <a href="#uid162">Pommaret´s theorem of Lin-Bose´s conjecture</a></b>
<br /><b>6. <a href="#uid200">Computation of (weakly) doubly coprime factorizations of rational transfer matrices</a></b>
<br /><b>7. <a href="#uid241">Decomposition of multidimensional linear systems</a></b>
<br /><b>8. <a href="#uid250">Conclusion</a></b>
<br /><b>9. <a href="#uid251">Appendix: <span class="smallcap">QuillenSuslin</span>, a package for computing bases of free modules over commutative polynomial rings</a></b></p>

<h1 id="uid3">1. Introduction</h1>
<p>In 1784, Monge studied the integration of certain <i>underdetermined</i> non-linear systems of ordinary differential equations, namely, systems containing more unknown functions than differential independent equations (<a href="#bid0" title="G. Monge, ``Supplément où l´on fait voir que les équations aux différences ordinaires pour lesquelle...">[31]</a>). He showed how the solutions of these systems could be parametrized by means of a certain number of arbitrary functions of the independent variable. This problem was called <i>the Monge problem</i> and it was studied by famous mathematicians such as Hadamard, Hilbert, Cartan and Goursat. In particular, motivated by problems coming from linear elasticity theory, Hadamard considered the case of linear ordinary differential equations and Goursat investigated underdetermined systems of partial differential equations. We refer the reader to <a href="#bid0" title="G. Monge, ``Supplément où l´on fait voir que les équations aux différences ordinaires pour lesquelle...">[31]</a> for a historical account on the Monge problem and for the main references.</p>
<p>Within the <i>algebraic analysis</i> approach (<a href="#bid1" title="J.  E. Bjork, Rings of Differential Operators, North Holland, 1979.">[2]</a>, <a href="#bid2" title="M. Kashiwara, Algebraic Study of Systems of Partial Differential Equations, Master´s Thesis, Tokyo U...">[21]</a>, <a href="#bid3" title="B. Malgrange, ``Systèmes à coefficients constants´´, Séminaire Bourbaki 1962/63, 1-11.">[30]</a>, <a href="#bid4" title="V. P. ÊPalamodov, Linear Differential Operators with Constant Coefficients, Springer, 1970.">[35]</a>), the Monge problem was recently studied for underdetermined systems of linear partial differential equations in <a href="#bid2" title="M. Kashiwara, Algebraic Study of Systems of Partial Differential Equations, Master´s Thesis, Tokyo U...">[21]</a>, <a href="#bid4" title="V. P. ÊPalamodov, Linear Differential Operators with Constant Coefficients, Springer, 1970.">[35]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a> and for linear functional systems in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a> (e.g., differential time-delay systems, discrete systems).
Depending on the algebraic properties of a certain module <span class="math"><i>M</i></span> defined over a ring <span class="math"><i>D</i></span> of functional operators and intrinsically associated with the linear functional system, we can prove or disprove the existence of different kinds of parametrizations of the system (i.e., minimal or injective parametrizations, non-minimal parametrizations, chains of successive parametrizations). Constructive algorithms for checking these algebraic properties (i.e., torsion, existence of torsion elements, torsion-free, reflexive, projective, stably free, free) and computing the different parametrizations were recently developed in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>, implemented in the package <span class="smallcap">OreModules</span> (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>) and illustrated on numerous examples coming from mathematical physics and control theory (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>). Finally, we proved in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a> how the Monge problem gave answers for the search of <i>potentials</i> in mathematical physics and <i>image representations</i> in control theory (<a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>, <a href="#bid11" title="J. W. Polderman, J. C. Willems, Introduction to Mathematical Systems Theory. A Behavioral Approach, ...">[42]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a>).</p>
<p>The last results show that the Monge problem is constructively solved for certain classes of linear functional systems up to a last but important point: we can check whether or not a linear functional system admits injective parametrizations but we are generally not able to compute one even if some heuristic methods were presented in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>.
Indeed, the existence of injective parametrizations for a linear functional system was proved to be equivalent to the freeness of the corresponding module <span class="math"><i>M</i></span>. In the case of a linear functional system with constant coefficients, the corresponding ring <span class="math"><i>D</i></span> of functional operators is a commutative polynomial ring over a field <span class="math"><i>k</i></span> of constants. Using the famous Quillen-Suslin theorem (<a href="#bid14" title="D. Quillen, ``Projective modules over polynomial rings´´, Invent. Math., 36 (1976), 167-171.">[56]</a>, <a href="#bid15" title="A. A. Suslin, ``Projective modules over polynomial rings are free´´, Dokl. Akad. Nauk. S.S.S.R, 229 ...">[58]</a>), also known as Serre´s conjecture (<a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a>), we then know that free <span class="math"><i>D</i></span>-modules are projective ones. Using Gröbner or Janet bases (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>), we can check whether or not a module over a commutative polynomial ring is projective. See <a href="#bid19" title="Y. A. Blinkov, C. F. Cid, V. P. Gerdt, W. Plesken, D. Robertz, The MAPLE Package ``Janet´´: I. Polyn...">[3]</a>, <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid20" title="G.-M. ÊGreuel, G. Pfister, A Singular Introduction to Commutative Algebra, Springer, 2002.">[20]</a> and the references therein for introductions to Janet and Gröbner bases. Hence, we can constructively prove the existence of an injective parametrization for a linear functional system. However, we need to use a constructive version of the Quillen-Suslin theorem (<a href="#bid21" title="N. Fitchas, A. Galligo, ``Nullstellensatz effectif et conjecture de Serre (Théorème de Quillen-Susli...">[15]</a>, <a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>, <a href="#bid23" title="R. C. Laubenbacher, C. J. Woodburn, ``A new algorithm for the Quillen-Suslin Theorem´´, Contribution...">[23]</a>, <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid25" title="H. Lombardi, I. Yengui, ``Suslin´s algorithms for reduction of unimodular rows´´, Journal of Symboli...">[29]</a>, <a href="#bid26" title="H. Park, C. Woodburn, ``An algorithmic proof of Suslin´s stability theorem for polynomial rings´´, J...">[37]</a>, <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>) to get injective parametrizations of the corresponding system.</p>
<p>The main purpose of this paper is to recall a general algorithm for computing bases of a free module over a commutative polynomial ring, give four new applications of the Quillen-Suslin theorem to mathematical systems theory and demonstrate the implementation of the <span class="smallcap">QuillenSuslin</span> package (<a href="#bid29" title="A. Fabia&#324;ska, QuillenSuslin project: A package for computing bases of free modules over commutative ...">[13]</a>) developed in the computer algebra system MAPLE. To our knowledge, the <span class="smallcap">QuillenSuslin</span> package is the first package available which performs basis computation of free modules over a commutative polynomial ring with rational and integer coefficients and is dedicated to different applications coming from mathematical systems theory.</p>
<p>More precisely, the plan of the paper is the following one. In the second section, we recall how the structural properties of linear functional systems can be constructively studied within the algebraic analysis approach as well as different results on the Monge problem. A constructive version of the Quillen-Suslin theorem, which is the main tool we use in the paper, is presented in the third section and the implementation is illustrated on many examples in the Appendix of the paper. We also describe some heuristic methods that highly simplify the computation of a basis of a free module over polynomial ring in certain special cases. The constructive version of the Quillen-Suslin theorem and, in particular the patching procedure, gives us the opportunity to make a new observation concerning linear functional systems which admit injective parametrizations also called <i>flat multidimensional systems</i> in mathematical systems theory. In the fourth section, we prove that a flat multidimensional system is algebraically equivalent to a 1-D flat linear system obtained by setting all but one functional operator to zero in the system matrix. This result gives an answer to a natural question on flat multidimensional systems. In particular, we prove that every flat differential time-delay system is algebraically equivalent to the differential system without delays, namely, the system obtained by setting to zero all the time-delay amplitudes.
In the fifth section, we consider a generalization of Serre´s conjecture. We recall that Serre´s conjecture conjecture, also known as the Quillen-Suslin theorem, can be expressed
in the language of matrices as follows: every matrix <span class="math"><i>R</i></span> over a commutative polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> whose maximal minors generate <span class="math"><i>D</i></span> (<i>unimodular matrix</i>) can be completed to a square invertible matrix over <span class="math"><i>D</i></span> (i.e., its determinant is a non-zero element of the field <span class="math"><i>k</i></span>). The generalization, stated by Lin and Bose in <a href="#bid30" title="Z. Lin, N. K. Bose, ``A generalization of Serre´s conjecture and related issues´´, Linear Algebra an...">[26]</a> and first proved by Pommaret in <a href="#bid31" title="J.-F. Pommaret, ``Solving Bose conjecture on linear multidimensional systems´´, Proceedings of Europ...">[43]</a> by means of algebraic analysis, can be formulated as the possibility of completing a matrix <span class="math"><i>R</i></span> whose maximal minors divided by their greatest common divisor <span class="math"><i>d</i></span> generate <span class="math"><i>D</i></span> to a square polynomial matrix whose determinant equals <span class="math"><i>d</i></span>. Serre´s conjecture is then the special case where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi><mo>=</mo><mn>1</mn></mrow></math></span>. Using the Quillen-Suslin theorem, we give a constructive algorithm for computing such a completion. Using the possibility of computing basis of a free module in our implementation <span class="smallcap">QuillenSuslin</span>, this algorithm has been implemented in this package.
In the sixth section, we study the existence of (weakly) left-/right-coprime factorizations of rational transfer matrices using recent results developed in <a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</a>. We give algorithms for computing such factorizations using the constructive version of the Quillen-Suslin theorem. These results constructively solve open questions in the literature of multidimensional linear systems (see <a href="#bid33" title="M. Wang, D. Feng, ``On Lin-Bose problem´´, Linear Algebra and its Applications, 390 (2004), 279-285.">[63]</a>, <a href="#bid34" title="M. Wang, C. P. Kwong, ``On multivariate polynomial matrix factorizations problems´´, Math. Control S...">[64]</a> and the references therein). Finally, we show that the constructive Quillen-Suslin theorem also plays an important role in the decomposition problem of linear functional systems studied in the literature of symbolic computation. See <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a> and the references therein for more details. The main idea is to transform the system matrix into an equivalent block-triangular or a block-diagonal form (<a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a>, <a href="#bid36" title="T. Cluzeau, A. Quadrat, ``Morphisms: A homological algebra package for factoring and decomposing lin...">[10]</a>).</p>
<p>The different algorithms presented in the paper have been implemented in the package <span class="smallcap">QuillenSuslin</span> based on the library <span class="smallcap">Involutive</span> (<a href="#bid19" title="Y. A. Blinkov, C. F. Cid, V. P. Gerdt, W. Plesken, D. Robertz, The MAPLE Package ``Janet´´: I. Polyn...">[3]</a>) (an <span class="smallcap">OreModules</span> (<a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>) version will be soon available). The Appendix illustrates the main procedures of the <span class="smallcap">QuillenSuslin</span> package on different examples taken from the literature (<a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>, <a href="#bid23" title="R. C. Laubenbacher, C. J. Woodburn, ``A new algorithm for the Quillen-Suslin Theorem´´, Contribution...">[23]</a>, <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>, <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a>).
The package <span class="smallcap">QuillenSuslin</span> also contains a completion algorithm for unimodular matrices over Laurent polynomial rings described in <a href="#bid38" title="H. Park, A Computational Theory of Laurent Polynomial Rings and Multidimensional FIR Systems, Univer...">[36]</a>, <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>. See also <a href="#bid39" title="M. Amidou, I. Yengui, `` An algorithm for unimodular completion over Laurent polynomial rings´´, pre...">[1]</a> for a recent algorithm.
In <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>, Park explains the importance and the meaning of the completion problem of unimodular matrices over Laurent polynomial rings to signal processing and gives an algorithm for translating this problem to a polynomial case. Park´s results can also be used for computing flat outputs of <i>&#948;-flat</i> multidimensional linear systems (<a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>, <a href="#bid41" title="H. Mounier, J. Rudolph, M. Fliess, P. Rouchon, ``Tracking control of a vibrating string with an inte...">[33]</a>). See <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a> for another constructive algorithm and <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a> for illustrations on different explicit examples.</p>

<h4 id="uid4">1.1. Notation.</h4>
<p>In what follows, we shall denote by <span class="math"><i>k</i></span> a field, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> a commutative polynomial ring with coefficients in <span class="math"><i>k</i></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></math></span> the <span class="math"><i>D</i></span>-module formed by the row vectors of length <span class="math"><i>p</i></span> with entries in <span class="math"><i>D</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></math></span> the set of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>p</mi></mrow></math></span>-matrices with entries in <span class="math"><i>D</i></span>.
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> will always denote a <span class="math"><i>D</i></span>-module. We denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mi>T</mi> </msup></math></span> the transpose of the matrix <span class="math"><i>R</i></span> and by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>I</mi> <mi>p</mi> </msub></math></span> the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>p</mi><mo>×</mo><mi>p</mi></mrow></math></span> identity matrix. Finally, the symbol &#8796; means ``by definition´´.</p>

<h1 id="uid5">2. A module-theoretic approach to systems theory</h1>
<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be a commutative polynomial ring over a field <span class="math"><i>k</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>.
We recall that a matrix <span class="math"><i>R</i></span> is said to have <i>full row rank</i> if the <i>first syzygy module</i> of the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span> formed by the <span class="math"><i>D</i></span>-linear combinations of the rows of <span class="math"><i>R</i></span>, namely,</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>&#8796;</mo><mo>{</mo><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><mn>0</mn><mo>}</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent">is reduced to 0. In other words, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><mn>0</mn></mrow></math></span> implies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#955;</mi><mo>=</mo><mn>0</mn></mrow></math></span>, i.e., the rows of <span class="math"><i>R</i></span> are <span class="math"><i>D</i></span>-linearly independent.</p>
<p>The following definitions of <i>primeness</i> are classical in systems theory.</p>
<div class="theorem-definition"><p><a><b id="uid6">Definition 1 (<a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a>)</b></a></p>


<p><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">R</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be a commutative polynomial ring,
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> a full row rank matrix,
<span class="math"><i>J</i></span> the ideal generated by the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi><mo>(</mo><mi>J</mi><mo>)</mo></mrow></math></span> the algebraic
variety defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mi>&#958;</mi><mo>&#8712;</mo><msup><mi mathvariant="double-struck">C</mi> <mi>n</mi> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>P</mi><mo>(</mo><mi>&#958;</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo><mspace width="0.277778em"></mspace><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>P</mi><mo>&#8712;</mo><mi>J</mi><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
<ol>
<li id="uid7"><p class="nofirst noindent"><i><span class="math"><i>R</i></span> is called </i>minor left-prime<i> if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mspace width="0.166667em"></mspace><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>&#8804;</mo><mi>n</mi><mo>&#8211;</mo><mn>2</mn><mo>,</mo></mrow></math></span> i.e.,
the greatest common divisor of the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span> is 1.</i></p>
<p><i></i></p>
</li>
<li id="uid8"><p class="nofirst noindent"><i><span class="math"><i>R</i></span> is called </i>weakly zero left-prime<i> if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mspace width="0.166667em"></mspace><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>&#8804;</mo><mn>0</mn><mo>,</mo></mrow></math></span> i.e.,
the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span> may only vanish simultaneously in a finite number of points of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">C</mi> <mi>n</mi> </msup></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid9"><p class="nofirst noindent"><i><span class="math"><i>R</i></span> is called </i>zero left-prime<i> if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mspace width="0.166667em"></mspace><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></math></span> i.e., the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span>
do not vanish simultaneously in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">C</mi> <mi>n</mi> </msup></math></span>.</i></p>
</li></ol>
</div>
<p>The previous classification plays an important role in multidimensional systems theory. See <a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a> and the references therein for more details.</p>
<p>The purpose of this section is twofold. We first recall how we can generalize the previous classification for general multidimensional linear systems, i.e., systems which are not necessarily defined by full row rank matrices. We also explain the duality existing between the <i>behavioural approach</i> to multidimensional systems (<a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a>) and the <i>module-theoretic one</i> (<a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>). See also <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a> for a nice introduction.</p>
<p>In what follows, <span class="math"><i>D</i></span> will denote a commutative polynomial ring with coefficients in a field <span class="math"><i>k</i></span>.
In particular, we shall be interested in commutative polynomial rings of functional operators such as partial differential operators, differential time-delay operators or shift operators.
Let us consider a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and a <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>, namely:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>f</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi mathvariant="script">F</mi><mo>,</mo><mspace width="1.em"></mspace><mo>&#8704;</mo><mspace width="0.277778em"></mspace><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>a</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi>D</mi><mo>:</mo><mspace width="1.em"></mspace><msub><mi>a</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>f</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>a</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>f</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi mathvariant="script">F</mi><mo>.</mo></mrow></math></div>
<p>If we define the following <span class="math"><i>D</i></span>-morphism, namely, <span class="math"><i>D</i></span>-linear map,</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="" close=""><mtable><mtr><mtd columnalign="right"><mrow><mo>.</mo><mi>R</mi><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mrow></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd columnalign="left"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="right"><mrow><mrow><mi>&#955;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>&#955;</mi> <mi>q</mi> </msub><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mo>&#8614;</mo></mtd><mtd columnalign="left"><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo><mo>(</mo><mi>&#955;</mi><mo>)</mo><mo>=</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></math></span> denotes the <span class="math"><i>D</i></span>-module of row vectors of length <span class="math"><i>p</i></span> with entries in <span class="math"><i>D</i></span>, then the cokernel of the <span class="math"><i>D</i></span>-morphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>.</mo><mi>R</mi></mrow></math></span> is defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">The <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is said to be presented by <span class="math"><i>R</i></span> or simply <i>finitely presented</i>
(<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>). Moreover, we can also define the <i>system</i> or <i>behaviour</i> as follows:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>&#8796;</mo><mo>{</mo><mi>&#951;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>=</mo><mn>0</mn><mo>}</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">As it was noticed by Malgrange in <a href="#bid3" title="B. Malgrange, ``Systèmes à coefficients constants´´, Séminaire Bourbaki 1962/63, 1-11.">[30]</a>, the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> and the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> are closely related. As this relation will play an important role in what follows, we shall explain it in details. In order to do that, let us first introduce a few classical definitions of homological algebra. We refer the reader to <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details.</p>
<div class="theorem-definition"><p><a><b id="uid10">Definition 2</b></a></p>

<ol>
<li id="uid11"><p class="nofirst noindent"><i>A sequence <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msub><mi>M</mi> <mi>i</mi> </msub><mo>,</mo><msub><mi>d</mi> <mi>i</mi> </msub><mo>:</mo><msub><mi>M</mi> <mi>i</mi> </msub><mo>&#8594;</mo><msub><mi>M</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><msub><mo>)</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi mathvariant="double-struck">Z</mi></mrow> </msub></mrow></math></span> of <span class="math"><i>D</i></span>-modules <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mi>i</mi> </msub></math></span> and <span class="math"><i>D</i></span>-morphisms <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>d</mi> <mi>i</mi> </msub><mo>:</mo><msub><mi>M</mi> <mi>i</mi> </msub><mo>&#8594;</mo><msub><mi>M</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow></math></span> is </i>a complex<i> if we have:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>i</mi><mo>&#8712;</mo><mi mathvariant="double-struck">Z</mi><mo>,</mo><mspace width="1.em"></mspace><mi> im </mi><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mi>i</mi> </msub><mo>&#8838;</mo><mo form="prefix">ker</mo><msub><mi>d</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We denote the previous complex by:</i></p>
<div class="hc mathdisplay"><a id="uid12"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>...</mo><mover><mo>&#8594;</mo> <msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>2</mn></mrow> </msub></mover><msub><mi>M</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mover><mo>&#8594;</mo> <msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub></mover><msub><mi>M</mi> <mi>i</mi> </msub><mover><mo>&#8594;</mo> <msub><mi>d</mi> <mi>i</mi> </msub></mover><msub><mi>M</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mover><mo>&#8594;</mo> <msub><mi>d</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mover><mo>...</mo></mrow></math></td><td class="eqno">(1)</td></tr></table></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid13"><p class="nofirst noindent"><i>The </i>defect of exactness of the complex (<a href="#uid12">1</a>) at <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mi>i</mi> </msub></math></span><i> is defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>H</mi><mo>(</mo></mrow><msub><mi>M</mi> <mi>i</mi> </msub><mrow><mo>)</mo><mo>=</mo><mo form="prefix">ker</mo></mrow><msub><mi>d</mi> <mi>i</mi> </msub><mo>/</mo><mi> im </mi><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid14"><p class="nofirst noindent"><i>The complex (<a href="#uid12">1</a>) is said to be </i>exact at <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mi>i</mi> </msub></math></span><i> if we have:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>H</mi><mo>(</mo></mrow><msub><mi>M</mi> <mi>i</mi> </msub><mrow><mo>)</mo><mo>=</mo><mn>0</mn><mspace width="1.em"></mspace><mo>&#8660;</mo><mspace width="1.em"></mspace><mo form="prefix">ker</mo></mrow><msub><mi>d</mi> <mi>i</mi> </msub><mo>=</mo><mi> im </mi><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid15"><p class="nofirst noindent"><i>The complex (<a href="#uid12">1</a>) is </i>exact<i> if:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>i</mi><mo>&#8712;</mo><mi mathvariant="double-struck">Z</mi><mo>,</mo><mspace width="1.em"></mspace><mo form="prefix">ker</mo><msub><mi>d</mi> <mi>i</mi> </msub><mo>=</mo><mi> im </mi><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid16"><p class="nofirst noindent"><i>The complex (<a href="#uid12">1</a>) said to be a </i>split exact sequence<i>
if (<a href="#uid12">1</a>) is exact and if there exist <span class="math"><i>D</i></span>-morphisms <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>s</mi> <mi>i</mi> </msub><mo>:</mo><msub><mi>M</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>&#8594;</mo><msub><mi>M</mi> <mi>i</mi> </msub></mrow></math></span> satisfying the following conditions:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>i</mi><mo>&#8712;</mo><mi mathvariant="double-struck">Z</mi><mo>,</mo><mspace width="1.em"></mspace><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>s</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>&#8728;</mo><msub><mi>s</mi> <mi>i</mi> </msub><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>s</mi> <mi>i</mi> </msub><mo>&#8728;</mo><msub><mi>d</mi> <mi>i</mi> </msub><mo>+</mo><msub><mi>d</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>&#8728;</mo><msub><mi>s</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>=</mo><mi>i</mi><msub><mi>d</mi> <msub><mi>M</mi> <mi>i</mi> </msub> </msub><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid17"><p class="nofirst noindent"><i>A </i>finite free resolution<i> of a <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is an exact sequence of the form</i></p>
<div class="hc mathdisplay"><a id="uid18"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mi>m</mi> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mi>m</mi> </msub></mrow></mover><mo>...</mo><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>2</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>1</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></td><td class="eqno">(2)</td></tr></table></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>p</mi> <mi>i</mi> </msub><mo>&#8712;</mo><msub><mi mathvariant="double-struck">Z</mi> <mo>+</mo> </msub><mo>=</mo><mo>{</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>}</mo></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mi>i</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mi>i</mi> </msub><mo>×</mo><msub><mi>p</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow> </msup></mrow></math></span>, and the <span class="math"><i>D</i></span>-morphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>.</mo><msub><mi>R</mi> <mi>i</mi> </msub></mrow></math></span> is defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd columnalign="right"><mrow><mo>.</mo><msub><mi>R</mi> <mi>i</mi> </msub><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mi>i</mi> </msub></mrow> </msup></mrow></mtd><mtd><mo>&#8594;</mo></mtd><mtd columnalign="left"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow> </msup></mtd></mtr><mtr><mtd columnalign="right"><mi>&#955;</mi></mtd><mtd><mo>&#8614;</mo></mtd><mtd columnalign="left"><mrow><mrow><mo>(</mo><mo>.</mo></mrow><msub><mi>R</mi> <mi>i</mi> </msub><mrow><mo>)</mo><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow><mo>=</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mi>i</mi> </msub><mo>.</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent"><i></i></p>
</li></ol>
</div>
<p>The next classical result of homological algebra will play a crucial role in what follows.</p>
<div class="theorem-theorem"><p><a><b id="uid19">Theorem 1 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> be a <span class="math"><i>D</i></span>-module, <span class="math"><i>M</i></span> a <span class="math"><i>D</i></span>-module
and (<a href="#uid18">2</a>) a finite free resolution of <span class="math"><i>M</i></span>. Then, the defects of
exactness of the following complex</p>
<div class="hc mathdisplay"><a id="uid20"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>...</mo><mover><mo>&#8592;</mo> <mrow><msub><mi>R</mi> <mn>3</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mn>2</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>R</mi> <mn>2</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mn>1</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>R</mi> <mn>1</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mn>0</mn> </msub> </msup><mo>&#8592;</mo><mn>0</mn><mo>,</mo></mrow></math></td><td class="eqno">(3)</td></tr></table></div>
<p class="nofirst noindent">where the <span class="math"><i>D</i></span>-morphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mi>i</mi> </msub><mo>.</mo><mo>:</mo><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub> </msup><mo>&#8594;</mo><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mi>i</mi> </msub> </msup></mrow></math></span> is defined by</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub> </msup><mrow><mo>,</mo><mspace width="1.em"></mspace><mo>(</mo></mrow><msub><mi>R</mi> <mi>i</mi> </msub><mrow><mo>.</mo><mo>)</mo><mo>(</mo><mi>&#951;</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>R</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">only depend on <span class="math"><i>M</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>. Up to an isomorphism, the defects of exactness are denoted by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>0</mn> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>R</mi> <mn>1</mn> </msub><mrow><mo>.</mo><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>R</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mrow><mo>.</mo><mo>)</mo><mo>/</mo><mo>(</mo></mrow><msub><mi>R</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mi>i</mi> </msub> </msup><mrow><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>i</mi><mo>&#8805;</mo><mn>1</mn><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent">Finally, we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>0</mn> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>=</mo><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></span>
where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> denotes
the <span class="math"><i>D</i></span>-module of <span class="math"><i>D</i></span>-morphisms from <span class="math"><i>M</i></span> to
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>.</p>
</div>
<p>We refer the reader to Example <a href="#uid180">13</a> for explicit computations of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8805;</mo><mn>0</mn></mrow></math></span>.</p>
<p>Coming back to the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>, we have the following beginning of a finite free resolution of <span class="math"><i>M</i></span>:</p>
<div class="hc mathdisplay"><a id="uid21"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="" close=""><mtable><mtr><mtd columnalign="right"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd columnalign="left"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="right"><mi>&#955;</mi></mtd><mtd><mo>&#8614;</mo></mtd><mtd columnalign="left"><mrow><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(4)</td></tr></table></div>
<p class="nofirst noindent">where &#960; denotes the <span class="math"><i>D</i></span>-morphism which sends elements of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></math></span> to their residue classes in <span class="math"><i>M</i></span>. If we ``apply the left-exact contravariant functor´´
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to (<a href="#uid21">4</a>) (see <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details), by Theorem <a href="#uid19">1</a>, we obtain the following exact sequence:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="" close=""><mtable><mtr><mtd><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mtd><mtd><mrow><mo>&#8592;</mo><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8592;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi></mrow></mtd><mtd><mo>&#8592;</mo></mtd><mtd><mi>&#951;</mi></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent">This implies the following important isomorphism (<a href="#bid3" title="B. Malgrange, ``Systèmes à coefficients constants´´, Séminaire Bourbaki 1962/63, 1-11.">[30]</a>):</p>
<div class="hc mathdisplay"><a id="uid22"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mi>&#951;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>=</mo><mn>0</mn><mo>}</mo><mo>&#8773;</mo></mrow><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>.</mo></mrow></math></td><td class="eqno">(5)</td></tr></table></div>
<p class="nofirst noindent">For more details, see <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid3" title="B. Malgrange, ``Systèmes à coefficients constants´´, Séminaire Bourbaki 1962/63, 1-11.">[30]</a>, <a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a> and the references therein. In particular, (<a href="#uid22">5</a>) gives an intrinsic characterization of the
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>-solutions of the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span>. It only depends on two
mathematical objects:</p>
<ol>
<li id="uid23"><p class="nofirst noindent">The finitely presented <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> which algebraically represents the linear functional system.</p>
<p></p>
</li>
<li id="uid24"><p class="nofirst noindent">The <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> which represents the ``functional
space´´ where we seek the solutions of the system.</p>
<p></p>
</li></ol>
<p>If <span class="math"><i>D</i></span> is now a ring of functional operators (e.g., differential operators,
time-delay operators, difference operators), then the issue of understanding which <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>
is suitable for a particular linear system has long been studied in functional
analysis and is still nowadays a very
active subject of research. It does not seem that constructive algebra and
symbolic computation can propose new methods to handle this functional
analysis problem. However, they are very useful for classifying
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> by means of the algebraic properties of the
<span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. Indeed, a large classification of the properties of modules is
developed in module theory and homological algebra. See <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more information. Let us recall a few of them.</p>
<div class="theorem-definition"><p><a><b id="uid25">Definition 3 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<p><i>Let <span class="math"><i>D</i></span> be a commutative polynomial ring with coefficients in a field <span class="math"><i>k</i></span> and <span class="math"><i>M</i></span> a
finitely presented <span class="math"><i>D</i></span>-module. Then, we have:</i></p>
<ol>
<li id="uid26"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>free<i> if it is isomorphic to
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup></math></span> for a non-negative integer <span class="math"><i>r</i></span>, i.e.:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mo>,</mo><mspace width="1.em"></mspace><mi>r</mi><mo>&#8712;</mo><msub><mi mathvariant="double-struck">Z</mi> <mo>+</mo> </msub><mo>=</mo><mo>{</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>...</mo><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid27"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>stably free<i> if there exist two non-negative integers <span class="math"><i>r</i></span> and <span class="math"><i>s</i></span> such that:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8853;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>s</mi></mrow> </msup><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid28"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>projective<i> if there exist
a <span class="math"><i>D</i></span>-module <span class="math"><i>P</i></span> and non-negative integer <span class="math"><i>r</i></span> such that:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8853;</mo><mi>P</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid29"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>reflexive<i> if the canonical map</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#949;</mi> <mi>M</mi> </msub><mo>:</mo><mi>M</mi><mo>&#8594;</mo><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo></mrow><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo><mo>,</mo><mi>D</mi><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>m</mi><mo>&#8712;</mo><mi>M</mi><mo>,</mo><mspace width="0.277778em"></mspace><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>f</mi><mo>&#8712;</mo><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>:</mo><mspace width="0.277778em"></mspace><msub><mi>&#949;</mi> <mi>M</mi> </msub><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>f</mi><mo>)</mo></mrow><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>is an isomorphism, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>
denotes the <span class="math"><i>D</i></span>-module of <span class="math"><i>D</i></span>-morphisms from <span class="math"><i>M</i></span> to <span class="math"><i>D</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid30"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>torsion-free<i> if the submodule of <span class="math"><i>M</i></span> defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo>{</mo><mi>m</mi><mo>&#8712;</mo><mi>M</mi><mo>&#8739;</mo><mo>&#8707;</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>&#8800;</mo><mi>P</mi><mo>&#8712;</mo><mi>D</mi><mo>:</mo><mspace width="0.277778em"></mspace><mi>P</mi><mspace width="0.166667em"></mspace><mi>m</mi><mo>=</mo><mn>0</mn><mo>}</mo></mrow></math></div>
<p class="nofirst noindent"><i>is reduced to the zero module. <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is called the </i>torsion submodule<i>
of <span class="math"><i>M</i></span> and the elements of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> are the </i>torsion elements<i> of <span class="math"><i>M</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid31"><p class="nofirst noindent"><i><span class="math"><i>M</i></span> is said to be </i>torsion<i> if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mi>M</mi></mrow></math></span>, i.e., every element of <span class="math"><i>M</i></span> is a
torsion element.</i></p>
</li></ol>
</div>
<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>K</mi><mo>=</mo><mi>Q</mi><mo>(</mo><mi>D</mi><mo>)</mo><mo>=</mo><mi>k</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> be the <i>quotient field</i> of <span class="math"><i>D</i></span> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>) and <span class="math"><i>M</i></span> a finitely presented <span class="math"><i>D</i></span>-module. We call the <i>rank</i> of <span class="math"><i>M</i></span> over <span class="math"><i>D</i></span>, denoted by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span>, the dimension of the <span class="math"><i>K</i></span>-vector space <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>K</mi><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>M</mi></mrow></math></span> obtained by extending the scalars of <span class="math"><i>M</i></span> from <span class="math"><i>D</i></span> to <span class="math"><i>K</i></span>, i.e.:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><msub><mi> dim </mi> <mi>K</mi> </msub><mrow><mo>(</mo><mi>K</mi></mrow><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mrow><mi>M</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">We can check that if <span class="math"><i>M</i></span> is a torsion <span class="math"><i>D</i></span>-module, we then have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>K</mi><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>M</mi><mo>=</mo><mn>0</mn></mrow></math></span>, a fact which implies that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>. See <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details.</p>
<p>Let us recall a few results about the notions previously introduced in Definition <a href="#uid25">3</a>.</p>
<div class="theorem-theorem"><p><a><b id="uid32">Theorem 2 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be a commutative polynomial ring with coefficients in a field <span class="math"><i>k</i></span>. We have the following results:</p>
<ol>
<li id="uid33"><p class="nofirst noindent">We have the
implications among the previous concepts:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mrow><mtext>free</mtext></mrow><mspace width="0.277778em"></mspace><mo>&#8658;</mo><mspace width="0.277778em"></mspace><mrow><mtext>stably</mtext><mspace width="0.5em"></mspace><mtext>free</mtext></mrow><mspace width="0.277778em"></mspace><mo>&#8658;</mo><mspace width="0.277778em"></mspace><mrow><mtext>projective</mtext></mrow><mspace width="0.277778em"></mspace><mo>&#8658;</mo><mrow><mtext>reflexive</mtext></mrow><mspace width="0.166667em"></mspace><mo>&#8658;</mo><mspace width="0.277778em"></mspace><mrow><mtext>torsion-free</mtext></mrow><mo>.</mo></mrow></mtd></mtr></mtable></math></div>
</li>
<li id="uid34"><p class="nofirst noindent">If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, then <span class="math"><i>D</i></span> is a <i>principal ideal domain</i> &#8211; namely, every ideal of <span class="math"><i>D</i></span> is <i>principal</i>, i.e., it can be generated by one element of <span class="math"><i>D</i></span> &#8211;
and every finitely generated torsion-free <span class="math"><i>D</i></span>-module is free.</p>
<p></p>
</li>
<li id="uid35"><p class="nofirst noindent">(Serre theorem <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>) Every projective module over <span class="math"><i>D</i></span> is stably free.</p>
<p></p>
</li>
<li id="uid36"><p class="nofirst noindent">(Quillen-Suslin theorem <a href="#bid14" title="D. Quillen, ``Projective modules over polynomial rings´´, Invent. Math., 36 (1976), 167-171.">[56]</a>, <a href="#bid15" title="A. A. Suslin, ``Projective modules over polynomial rings are free´´, Dokl. Akad. Nauk. S.S.S.R, 229 ...">[58]</a>) Every projective module over <span class="math"><i>D</i></span> is free.</p>
</li></ol>
</div>
<p>The famous Quillen-Suslin theorem will play an important role in what follows. We refer to <a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a> for the best introductions nowadays available on this subject.</p>
<p>The next theorem gives some characterizations of the definitions given in Definition <a href="#uid25">3</a>.</p>
<div class="theorem-theorem"><p><a><b id="uid37">Theorem 3 (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid4" title="V. P. ÊPalamodov, Linear Differential Operators with Constant Coefficients, Springer, 1970.">[35]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be a commutative polynomial ring over a field <span class="math"><i>k</i></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and
the finitely presented <span class="math"><i>D</i></span>-modules:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>N</mi><mo>=</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">We then have the equivalences between the first two columns of Figure <a href="#uid43">1</a>.</p>
</div>
<p>Combining the results of Theorem <a href="#uid37">3</a> and the Quillen-Suslin theorem (see 4 of Theorem <a href="#uid32">2</a>), we then obtain a way to check whether or not a finitely presented <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> has some torsion elements or is torsion-free, reflexive, projective, stably free or free. We point out that the explicit computation of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> can always be done using Gröbner or Janet bases. See <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a> for more details and for the description of the corresponding algorithms. We also refer the reader to <a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a> for the library <span class="smallcap">OreModules</span> in which the different algorithms were implemented as well as to the large library of examples of <span class="smallcap">OreModules</span> which illustrates them. Finally, see also <a href="#bid19" title="Y. A. Blinkov, C. F. Cid, V. P. Gerdt, W. Plesken, D. Robertz, The MAPLE Package ``Janet´´: I. Polyn...">[3]</a>, <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid20" title="G.-M. ÊGreuel, G. Pfister, A Singular Introduction to Commutative Algebra, Springer, 2002.">[20]</a> and the references therein for an introduction to Gröbner and Janet bases.</p>
<div class="theorem-remark"><p><a><b id="uid38">Remark 1</b></a></p>

<p><i>The <span class="math"><i>D</i></span>-module</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>N</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>is called the </i>transposed module<i> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> even if <span class="math"><i>N</i></span> depends on <span class="math"><i>M</i></span> only up to a </i>projective equivalence<i> (<a href="#bid45" title="J.-F. Pommaret, A. Quadrat, ``Equivalences of linear control systems&quot;, proceedings 14 th Internation...">[47]</a>), namely, if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>s</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>s</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow></math></span>, then there exist two projective <span class="math"><i>D</i></span>-modules <span class="math"><i>P</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>P</mi> <mo>&#8242;</mo> </msup></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>N</mi><mo>&#8853;</mo><mi>P</mi><mo>&#8773;</mo><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mo>&#8853;</mo><msup><mi>P</mi> <mo>&#8242;</mo> </msup></mrow></math></span> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>). However, for every <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>, we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>&#8853;</mo><mi>P</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8773;</mo><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8853;</mo><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>P</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> and, for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8805;</mo><mn>1</mn></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>P</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span> as <span class="math"><i>P</i></span> is a projective <span class="math"><i>D</i></span>-module (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>). Hence, we then get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8773;</mo><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo></mrow><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mrow><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span>, for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8805;</mo><mn>1</mn></mrow></math></span>. Hence, the results of Theorem <a href="#uid37">3</a> do not depend on the choice of a presentation of <span class="math"><i>M</i></span>, i.e., on <span class="math"><i>R</i></span>. In what follows, we shall sometimes denote <span class="math"><i>N</i></span> by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span>.</i></p>
</div>
<p>In order to explain why the definitions given in Definition <a href="#uid25">3</a> extend the concepts of primeness defined in Definition <a href="#uid6">1</a>, we first need to introduce some more definitions.</p>
<div class="theorem-definition"><p><a><b id="uid39">Definition 4 (<a href="#bid1" title="J.  E. Bjork, Rings of Differential Operators, North Holland, 1979.">[2]</a>)</b></a></p>


<ol>
<li id="uid40"><p class="nofirst noindent"><i>If <span class="math"><i>M</i></span> is a non-zero finitely presented <span class="math"><i>D</i></span>-module, then the </i>grade<i> <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>j</mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> of <span class="math"><i>M</i></span> is defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>j</mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo movablelimits="true" form="prefix">min</mo><mspace width="0.166667em"></mspace><mo>{</mo><mi>i</mi><mo>&#8805;</mo><mn>0</mn><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace></mrow><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8800;</mo><mn>0</mn><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid41"><p class="nofirst noindent"><i>If <span class="math"><i>M</i></span> is a non-zero finitely presented <span class="math"><i>D</i></span>-module, the </i>dimension<i> <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> of <span class="math"><i>M</i></span> is defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mi> Kdim </mi><mo>(</mo><mi>D</mi><mo>/</mo></mrow><msqrt><mrow><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></msqrt><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink"> Kdim </mi></math></span> denotes the </i>Krull dimension<i> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>) and:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo>{</mo><mi>a</mi><mo>&#8712;</mo><mi>D</mi><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>a</mi><mspace width="0.166667em"></mspace><mi>M</mi><mo>=</mo><mn>0</mn><mo>}</mo><mo>,</mo><mspace width="1.em"></mspace></mrow><msqrt><mrow><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></msqrt><mrow><mo>=</mo><mo>{</mo><mi>a</mi><mo>&#8712;</mo><mi>D</mi><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mo>&#8707;</mo><mspace width="0.277778em"></mspace><mi>l</mi><mo>&#8712;</mo></mrow><msub><mi mathvariant="double-struck">Z</mi> <mo>+</mo> </msub><mo>:</mo><mspace width="0.277778em"></mspace><msup><mi>a</mi> <mi>l</mi> </msup><mspace width="0.166667em"></mspace><mi>M</mi><mo>=</mo><mn>0</mn><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li></ol>
</div>
<p>We are now in position to state an important result.</p>
<div class="theorem-theorem"><p><a><b id="uid42">Theorem 4 (<a href="#bid1" title="J.  E. Bjork, Rings of Differential Operators, North Holland, 1979.">[2]</a>, <a href="#bid4" title="V. P. ÊPalamodov, Linear Differential Operators with Constant Coefficients, Springer, 1970.">[35]</a>)</b></a></p>


<p>If <span class="math"><i>M</i></span> is a non-zero finitely presented <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module, where <span class="math"><i>k</i></span> is a field containing <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="double-struck">Q</mi></math></span>, we then
have:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>j</mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>+</mo><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><mi>n</mi><mo>.</mo></mrow></math></div>
</div>
<p>Let us suppose that <span class="math"><i>R</i></span> has full row rank and let us consider the finitely presented <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>. Using the notations of Definition <a href="#uid6">1</a> and the fact that</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>N</mi><mo>)</mo></mrow><mo>=</mo><msub><mi> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>N</mi><mo>=</mo><mi>T</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span> is then a torsion <span class="math"><i>D</i></span>-module, i.e., it satisfies
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>0</mn> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>, by Theorem <a href="#uid42">4</a>, we then obtain:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>j</mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>N</mi><mo>)</mo></mrow><mo>=</mo><mi>n</mi><mo>&#8211;</mo><msub><mi> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>&#8805;</mo><mn>1</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Hence, by Theorems <a href="#uid37">3</a> and <a href="#uid42">4</a>, we obtain that <span class="math"><i>R</i></span> is minor left-prime (resp., zero left-prime) iff the <span class="math"><i>D</i></span>-module
<span class="math"><i>M</i></span> is torsion-free (resp., projective, i.e., free by the Quillen-Suslin
theorem stated in 4 of Theorem <a href="#uid32">2</a>). See <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a> for more details and the extension of these results to the case of non-commutative rings of differential operators.</p>
<p>We finally obtain the table given in Figure <a href="#uid43">1</a> which sums up the different results
previously obtained. We note that the last two columns of this table only hold
when the matrix <span class="math"><i>R</i></span> has full row rank.</p>
<div class="hc"><p><table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-top:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-top:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-top:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-top:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"><b>Module <span class="math"><i>M</i></span></b></td>
<td style="text-align:center;border-right:solid 1px;"><b><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mrow><mtext>ext</mtext></mrow> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span></b></td>
<td style="text-align:center;border-right:solid 1px;"><b><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>N</mi><mo>)</mo></mrow></mrow></math></span></b></td>
<td style="text-align:center;border-right:solid 1px;"><b>Primeness</b></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"><b>With torsion</b></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8773;</mo><msubsup><mi> ext </mi> <mi>D</mi> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;">&#8709;</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"><b>Torsion-free</b></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>n</mi><mo>&#8211;</mo><mn>2</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;">Minor left-prime</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"><b>Reflexive</b></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>n</mi><mo>&#8211;</mo><mn>3</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;">...</td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;">...</td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;">...</td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;">...</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;">...</td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;">0</td>
<td style="text-align:center;border-right:solid 1px;">Weakly zero</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;">left-prime</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"><b>Projective</b></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;">-1</td>
<td style="text-align:center;border-right:solid 1px;">Zero left-prime</td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>n</mi></mrow></math></span></td>
<td style="text-align:center;border-right:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;"></td>
</tr><tr><td style="text-align:center;border-right:solid 1px;border-left:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
<td style="text-align:center;border-right:solid 1px;border-bottom:solid 1px;"></td>
</tr></table></p></div>
<p>To finish, we explain what the system interpretations of the definitions given in Definition <a href="#uid25">3</a> are. In particular, these interpretations solve the Monge problem stated in the introduction of the paper. In order to do that, we also need to introduce a few more definitions.</p>
<div class="theorem-definition"><p><a><b id="uid44">Definition 5 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<ol>
<li id="uid45"><p class="nofirst noindent"><i>A <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is called </i>injective<i> if, for every
<span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>, and, for all <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8805;</mo><mn>1</mn></mrow></math></span>, we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid46"><p class="nofirst noindent"><i>A <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is called </i>cogenerator<i> if, for
every <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>, we have:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mspace width="1.em"></mspace><mo>&#8658;</mo><mspace width="1.em"></mspace><mi>M</mi><mo>=</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li></ol>
</div>
<p>Roughly speaking, an injective cogenerator is a space rich enough for seeking solutions of linear systems of the form <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>=</mo><mn>0</mn></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> is any matrix and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>y</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mrow></math></span>. In particular, using (<a href="#uid22">5</a>), if
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is a cogenerator <span class="math"><i>D</i></span>-module and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8800;</mo><mn>0</mn></mrow></math></span>, then <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow><mo>&#8800;</mo><mn>0</mn></mrow></math></span>, meaning that the corresponding system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is not empty. Finally, if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is an injective cogenerator
<span class="math"><i>D</i></span>-module, then we can prove that any complex of the form (<a href="#uid20">3</a>) is
exact at <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi> <msub><mi>p</mi> <mi>i</mi> </msub> </msup></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8805;</mo><mn>1</mn></mrow></math></span>, if and only if the corresponding complex (<a href="#uid18">2</a>) is exact. See <a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a> and the references therein for more details.</p>
<p>The following result proves that there always exists an injective cogenerator.</p>
<div class="theorem-theorem"><p><a><b id="uid47">Theorem 5 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<p>An injective cogenerator <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> exists for every ring <span class="math"><i>D</i></span>.</p>
</div>
<p>Let us give important examples of injective cogenerator modules.</p>
<div class="theorem-example"><p><a><b id="uid48">Example 1</b></a></p>

<p><i>If &#937; is an open convex subset of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">R</mi> <mi>n</mi> </msup></math></span>, then the space
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo><mi>&#937;</mi><mo>)</mo></mrow></mrow></math></span> (resp., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi mathvariant="script">D</mi> <mo>&#8242;</mo> </msup><mrow><mo>(</mo><mi>&#937;</mi><mo>)</mo></mrow></mrow></math></span>) of smooth real functions
(resp., real distributions) on &#937; is an injective cogenerator module over the ring
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi mathvariant="double-struck">R</mi><mo>[</mo></mrow><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#8706;</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> of differential operators with coefficients in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="double-struck">R</mi></math></span>,
where we have denoted by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#8706;</mi> <mi>i</mi> </msub><mo>=</mo><mi>&#8706;</mi><mo>/</mo><mi>&#8706;</mi><msub><mi>x</mi> <mi>i</mi> </msub></mrow></math></span> (<a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid3" title="B. Malgrange, ``Systèmes à coefficients constants´´, Séminaire Bourbaki 1962/63, 1-11.">[30]</a>, <a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>).</i></p>
</div>
<div class="theorem-example"><p><a><b id="uid49">Example 2</b></a></p>

<p><i>Let <span class="math"><i>k</i></span> be a field, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi><mo>=</mo><msup><mi>k</mi> <msubsup><mi mathvariant="double-struck">Z</mi> <mo>+</mo> <mi>n</mi> </msubsup> </msup></mrow></math></span> be the set of sequences with values in <span class="math"><i>k</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be the ring of </i>shift operators<i>, namely,</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>f</mi><mo>&#8712;</mo><mi mathvariant="script">F</mi><mo>,</mo><mspace width="0.277778em"></mspace><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi><mo>,</mo><mspace width="1.em"></mspace><mo>(</mo></mrow><msub><mi>x</mi> <mi>i</mi> </msub><mrow><mspace width="0.166667em"></mspace><mi>f</mi><mo>)</mo><mo>(</mo><mi>&#956;</mi><mo>)</mo><mo>=</mo><mi>f</mi><mo>(</mo><mi>&#956;</mi><mo>+</mo></mrow><msub><mn>1</mn> <mi>i</mi> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>&#956;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#956;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#956;</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msubsup><mi mathvariant="double-struck">Z</mi> <mo>+</mo> <mi>n</mi> </msubsup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#956;</mi><mo>+</mo><msub><mn>1</mn> <mi>i</mi> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>&#956;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#956;</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>&#956;</mi> <mi>i</mi> </msub><mo>+</mo><mn>1</mn><mo>,</mo><msub><mi>&#956;</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#956;</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. Then, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is an injective <span class="math"><i>D</i></span>-module (<a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>).</i></p>
</div>
<p>We have the following important corollary of Theorem <a href="#uid37">3</a> which solves the Monge problem in the case of linear functional systems with constant coefficients. See <a href="#bid46" title="P. Zervos, Le problème de Monge, Mémorial des sciences mathématiques, fasicule LIII, Gauthier-Villars, 1932.">[67]</a> and the references therein and the introduction of the paper.</p>
<div class="theorem-corollary"><p><a><b id="uid50">Corollary 1 (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> be an injective cogenerator <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>.
Then, we have the following results:</p>
<ol>
<li id="uid51"><p class="nofirst noindent">There exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>q</mi> <mn>1</mn> </msub><mo>×</mo><msub><mi>q</mi> <mn>2</mn> </msub></mrow> </msup></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>p</mi><mo>=</mo><msub><mi>q</mi> <mn>1</mn> </msub></mrow></math></span>, such that we have the exact sequence</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>1</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mn>1</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><msub><mi>Q</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup></mrow></math></span>, iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is torsion-free.</p>
<p></p>
</li>
<li id="uid52"><p class="nofirst noindent">There exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>q</mi> <mn>1</mn> </msub><mo>×</mo><msub><mi>q</mi> <mn>2</mn> </msub></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>q</mi> <mn>2</mn> </msub><mo>×</mo><msub><mi>q</mi> <mn>3</mn> </msub></mrow> </msup></mrow></math></span> such that
we have the exact sequence</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>1</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mn>1</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mn>2</mn> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>3</mn> </msub> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><msub><mi>Q</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>Q</mi> <mn>1</mn> </msub><mrow><mo>.</mo><mo>)</mo><mo>=</mo></mrow><msub><mi>Q</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>3</mn> </msub> </msup></mrow></math></span>, iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is reflexive.</p>
<p></p>
</li>
<li id="uid53"><p class="nofirst noindent">There exists a chain of <span class="math"><i>n</i></span> successive parametrizations, namely, for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi></mrow></math></span>, there exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mi>i</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>q</mi> <mi>i</mi> </msub><mo>×</mo><msub><mi>q</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub></mrow> </msup></mrow></math></span> such that we have the following exact
sequence</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>1</mn> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mn>1</mn> </msub><mo>.</mo></mrow></mover><mo>...</mo><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mi>n</mi> </msub> </msup><mover><mo>&#8592;</mo> <mrow><msub><mi>Q</mi> <mi>n</mi> </msub><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow> </msub> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><msub><mi>Q</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>Q</mi> <mi>i</mi> </msub><mrow><mo>.</mo><mo>)</mo><mo>=</mo></mrow><msub><mi>Q</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow></math></span>, iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is projective.</p>
<p></p>
</li>
<li id="uid54"><p class="nofirst noindent">There exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>m</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>m</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msub><mi>I</mi> <mi>m</mi> </msub></mrow></math></span> and the sequence</p>
<div class="hc mathdisplay"><a id="uid55"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup><mover><mo>&#8592;</mo> <mrow><mi>Q</mi><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <mi>m</mi> </msup><mo>&#8592;</mo><mn>0</mn><mo>,</mo></mrow></math></td><td class="eqno">(6)</td></tr></table></div>
<p class="nofirst noindent">is exact, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <mi>m</mi> </msup></mrow></math></span>, and iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free.</p>
</li></ol>
</div>
<p>We refer the reader to <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>, <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid48" title="A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from wwwb.math.rwth-aachen.de/OreModules.">[54]</a> for the solutions of the Monge problem for different classes of linear functional systems with variables coefficients such as partial differential, differential time-delay or difference equations.</p>
<p>The matrices <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi> <mi>i</mi> </msub></math></span> defined in Corollary <a href="#uid50">1</a> are called <i>parametrizations</i> (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a>). Indeed, from 1 of Corollary <a href="#uid50">1</a>, if <span class="math"><i>M</i></span> is torsion-free, then there exists a matrix of operators <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>q</mi> <mn>1</mn> </msub><mo>×</mo><msub><mi>q</mi> <mn>2</mn> </msub></mrow> </msup></mrow></math></span> which satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><msub><mi>Q</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup></mrow></math></span>. This means that any solution <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#951;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>=</mo><mn>0</mn></mrow></math></span> is of the form <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#951;</mi><mo>=</mo><msub><mi>Q</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></math></span> for a certain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#958;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <msub><mi>q</mi> <mn>2</mn> </msub> </msup></mrow></math></span>. In the <i>behaviour approach</i> (<a href="#bid11" title="J. W. Polderman, J. C. Willems, Introduction to Mathematical Systems Theory. A Behavioral Approach, ...">[42]</a>), the parametrization is called an <i>image representation</i> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> (<a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a>). We point out that the parametrizations <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi> <mi>i</mi> </msub></math></span> are obtained by computing <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> (see Theorem <a href="#uid37">3</a>). Hence, checking whether or not a <span class="math"><i>D</i></span>-module is torsion-free, reflexive or projective gives the corresponding successive parametrizations.
We refer to <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a> for more details, the extension of the previous results to non-commutative algebras of functional operators and the implementation of the corresponding algorithms in the library <span class="smallcap">OreModules</span>. Finally, the matrix <span class="math"><i>Q</i></span> defined in 4 of Corollary <a href="#uid50">1</a> is called an <i>injective parametrization</i> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> as every <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>-solution of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> has the form <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#951;</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></math></span> for a certain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#958;</mi><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mi>m</mi> </msup></mrow></math></span> and we have</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#958;</mi><mo>=</mo><mo>(</mo><mi>T</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#958;</mi><mo>=</mo><mi>T</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">i.e., &#958; is uniquely defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#951;</mi><mo>&#8712;</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span>. At this stage, it is important to point out that no general algorithm has been developed to get injective parametrizations when the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free. It is the main purpose of this paper to constructively study this question and to apply the computation of injective parametrizations to some open questions appearing in mathematical systems theory.</p>
<p>Finally, we point out that, if <span class="math"><i>M</i></span> is a free <span class="math"><i>D</i></span>-module, then there always exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>m</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>m</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> such that, for every <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>, we have the exact sequence (<a href="#uid55">6</a>). Indeed, let us recall two standard arguments of homological algebra.</p>
<div class="theorem-proposition"><p><a><b id="uid56">Proposition 1 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</b></a></p>


<ol>
<li id="uid57"><p class="nofirst noindent">Let us consider the following short exact sequence:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mover><mo>&#8594;</mo> <mi>f</mi></mover><mi>M</mi><mover><mo>&#8594;</mo> <mi>g</mi></mover><msup><mi>M</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></math></span> is a projective <span class="math"><i>D</i></span>-module, then the previous exact sequence splits (see 5 of Definition <a href="#uid10">2</a>).</p>
<p></p>
</li>
<li id="uid58"><p class="nofirst noindent">Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> be a <span class="math"><i>D</i></span>-module. The functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> transforms split exact sequences of <span class="math"><i>D</i></span>-modules into split exact sequences of <span class="math"><i>D</i></span>-modules.</p>
</li></ol>
</div>
<p>By 1 of Proposition <a href="#uid56">1</a>, we obtain that
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>Q</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>m</mi></mrow> </msup><mo>&#8594;</mo><mn>0</mn></mrow></math></span>
is a splitting exact sequence and applying the functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to it, by 2 of Proposition <a href="#uid56">1</a>, we obtain the splitting exact sequence (<a href="#uid55">6</a>). Hence, the assumption that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is an injective cogenerator <span class="math"><i>D</i></span>-module is only important for the converse implication of 6 of Corollary <a href="#uid50">1</a>.</p>
<p>Explicit examples of computation of parametrizations can be found in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid6" title="J.-F. Pommaret, A. Quadrat, ``Localization and parametrization of linear multidimensional control sy...">[45]</a>, <a href="#bid7" title="J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of linear multidimensional control systems´´, IMA J...">[46]</a> as well in the <span class="smallcap">OreModules</span> large library of examples (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>). We refer the reader to these references and to Section <a href="#uid127" title="Flat multidimensional linear systems">4</a> for the computation of injective parametrizations. However, let us give a simple example in order to illustrate the previous results.</p>
<div class="theorem-example"><p><a><b id="uid59">Example 3</b></a></p>

<p><i>Let us consider the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo></mrow><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>&#8706;</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> of differential operators with rational coefficients (<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#8706;</mi> <mi>i</mi> </msub><mo>=</mo><mi>&#8706;</mi><mo>/</mo><mi>&#8706;</mi><msub><mi>x</mi> <mi>i</mi> </msub></mrow></math></span>), the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> defining the so-called </i>divergent operator<i> in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">R</mi> <mn>3</mn> </msup></math></span> and the finitely presented <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>/</mo><mrow><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>. Let us check whether or not the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> has some torsion elements or is torsion-free, reflexive or projective, i.e., free by the Quillen-Suslin theorem. In order to do that, we define the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>N</mi><mo>=</mo><mi>D</mi><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. A finite free resolution of <span class="math"><i>N</i></span> can easily be computed by means of Gröbner or Janet bases. We obtain the following exact sequence</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><mi>D</mi><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>P</mi> <mn>3</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>P</mi> <mn>2</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mi>T</mi> </msup></mrow></mover><mi>D</mi><mover><mo>&#8594;</mo> <mi>&#963;</mi></mover><mi>N</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where &#963; denotes the canonical projection onto <span class="math"><i>N</i></span> and:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>P</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd><mtd><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mtd></mtr><mtr><mtd><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>1</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mtd><mtd><msub><mi>&#8706;</mi> <mn>1</mn> </msub></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><msub><mi>P</mi> <mn>3</mn> </msub><mo>=</mo><mi>R</mi><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We note that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>P</mi> <mn>2</mn> </msub></math></span> corresponds to the so-called </i>curl operator<i> whereas <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mi>T</mi> </msup></math></span> is the </i>gradient operator<i>. Then, the defects of exactness of the following complex</i></p>
<div class="hc mathdisplay"><a id="uid60"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8592;</mo><mi>D</mi><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover><mi>D</mi><mo>&#8592;</mo><mn>0</mn></mrow></math></td><td class="eqno">(7)</td></tr></table></div>
<p class="nofirst noindent"><i>are defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>0</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>/</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>2</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>3</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo><mo>&#8773;</mo><mi>D</mi><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Using the fact that <span class="math"><i>R</i></span> has full row rank, we obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>0</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>, which is equivalent to say that <span class="math"><i>N</i></span> is a torsion <span class="math"><i>D</i></span>-module. Now computing the syzygy modules <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo></mrow></mrow></math></span> by means of Gröbner or Janet bases, we obtain that</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>,</mo><mspace width="1.em"></mspace></mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup><mrow><mo>)</mo><mo>=</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>which shows that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi> ext </mi> <mi>D</mi> <mn>2</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>. Finally, we can easily check that 1 does not belong to the ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>I</mi><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mo>+</mo><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mo>+</mo><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></math></span> of <span class="math"><i>D</i></span>, and thus, we have:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mn>3</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8773;</mo><mi>D</mi><mo>/</mo><mi>I</mi><mo>&#8800;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Using Theorem <a href="#uid37">3</a>, we obtain that <span class="math"><i>M</i></span> is a reflexive but not a projective, i.e., not a free <span class="math"><i>D</i></span>-module. This last fact can also be checked as <span class="math"><i>R</i></span> has full row rank and the dimension <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> dim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>N</mi><mo>)</mo></mrow></mrow></math></span> is 0 as the corresponding system is defined by the gradient operator, namely,</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>y</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mi>y</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>&#8706;</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><mi>y</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>whose solution is a constant, i.e., the solution of the system only depends on ``a function of zero independent variables´´. Hence, by Theorem <a href="#uid42">4</a>, we obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>j</mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>N</mi><mo>)</mo></mrow><mo>=</mo><mn>3</mn></mrow></math></span>, meaning that the first non-zero <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> has index 3. By Theorem <a href="#uid37">3</a>, we then get that <span class="math"><i>M</i></span> is a reflexive <span class="math"><i>D</i></span>-module but not a projective one.</i></p>
<i></i><p><i>Finally, if we consider the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi><mo>=</mo><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo><mi>&#937;</mi><mo>)</mo></mrow></mrow></math></span>, where &#937; is an open convex subset of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">R</mi> <mn>3</mn> </msup></math></span>, using Example <a href="#uid48">1</a>, we obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is an injective cogenerator <span class="math"><i>D</i></span>-module. Hence, if we apply the functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to the complex (<a href="#uid60">7</a>), we then obtain the following exact sequence:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi><mover><mo>&#8594;</mo> <mrow><msubsup><mi>P</mi> <mn>3</mn> <mi>T</mi> </msubsup><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <mn>3</mn> </msup><mover><mo>&#8594;</mo> <mrow><msubsup><mi>P</mi> <mn>2</mn> <mi>T</mi> </msubsup><mo>.</mo></mrow></mover><msup><mi mathvariant="script">F</mi> <mn>3</mn> </msup><mover><mo>&#8594;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover><mi mathvariant="script">F</mi><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We find again the classical results in mathematical physics that the smooth solutions on an open convex subset of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="double-struck">R</mi> <mn>3</mn> </msup></math></span> of the divergence operator are parametrized by the curl operator and the solutions of the curl operator are parametrized by the gradient operator.</i></p>
</div>
<p>The only point let open is to constructively compute injective parametrizations of linear functional systems defining free modules over a commutative polynomial ring <span class="math"><i>D</i></span>. Indeed, checking the vanishing of the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we generally obtain a successive chain of <span class="math"><i>n</i></span> parametrizations but not an injective one. In the case of linear systems of partial differential equations with polynomial or rational coefficients, we have recently solved this problem in <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid48" title="A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from wwwb.math.rwth-aachen.de/OreModules.">[54]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a> using a constructive proof of a famous result in non-commutative algebra due to Stafford. However, the same technique cannot be used if we want an injective parametrization <span class="math"><i>Q</i></span> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> to have only constant coefficients.
The main purpose of this paper is to solve this problem using a constructive proof of the Quillen-Suslin theorem and to show some applications of this result to mathematical systems theory.</p>

<h1 id="uid61">3. The Quillen-Suslin theorem</h1>
<p>Since Quillen and Suslin independently proved Serre´s conjecture stating that projective modules over commutative polynomial rings with coefficients in a field are free, some algorithmic versions of the proof have been proposed in the literature in order to constructively compute bases of free modules (<a href="#bid21" title="N. Fitchas, A. Galligo, ``Nullstellensatz effectif et conjecture de Serre (Théorème de Quillen-Susli...">[15]</a>, <a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>, <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid25" title="H. Lombardi, I. Yengui, ``Suslin´s algorithms for reduction of unimodular rows´´, Journal of Symboli...">[29]</a>, <a href="#bid26" title="H. Park, C. Woodburn, ``An algorithmic proof of Suslin´s stability theorem for polynomial rings´´, J...">[37]</a>, <a href="#bid50" title="L. N. Vaser&#353;tein, A. A. Suslin, ``Serre´s Problem on projective modules over polynomial rings and al...">[59]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>, <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>).
We refer the interested reader to Lam´s nice books <a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a> concerning Serre´s conjecture.</p>
<h2 id="uid62">3.1. Projective and stably free modules</h2>
<p>In module theory, it is well-known that a finitely presented <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module (<span class="math"><i>k</i></span> is a field) <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, admits a finite free resolution. This is a result is due to Hilbert (<a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>). Moreover, if <span class="math"><i>k</i></span> is a <i>computable field</i>, we can even construct a finite free resolution of <span class="math"><i>M</i></span> using Gröbner or Janet basis (<a href="#bid19" title="Y. A. Blinkov, C. F. Cid, V. P. Gerdt, W. Plesken, D. Robertz, The MAPLE Package ``Janet´´: I. Polyn...">[3]</a>, <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid20" title="G.-M. ÊGreuel, G. Pfister, A Singular Introduction to Commutative Algebra, Springer, 2002.">[20]</a>).</p>
<p>A classical result due to Serre proves that every projective <span class="math"><i>D</i></span>-module is stably free (a stably free module always being a projective <span class="math"><i>D</i></span>-module). See <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a> for more details.
In <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a>, a constructive proof of this result was given and the corresponding algorithm was implemented in <span class="smallcap">OreModules</span>. Let us recall these useful results.</p>
<div class="theorem-proposition"><p><a><b id="uid63">Proposition 2 ( <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a>)</b></a></p>


<p>Let <span class="math"><i>M</i></span> be a <span class="math"><i>D</i></span>-module defined by the finite free resolution:</p>
<div class="hc mathdisplay"><a id="uid64"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mi>m</mi> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mi>m</mi> </msub></mrow></mover><mo>...</mo><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>2</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>1</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></td><td class="eqno">(8)</td></tr></table></div>
<ol>
<li id="uid65"><p class="nofirst noindent">If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>m</mi><mo>&#8805;</mo><mn>3</mn></mrow></math></span> and there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>S</mi> <mi>m</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>×</mo><msub><mi>p</mi> <mi>m</mi> </msub></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mi>m</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>S</mi> <mi>m</mi> </msub><mo>=</mo><msub><mi>I</mi> <msub><mi>p</mi> <mi>m</mi> </msub> </msub><mo>,</mo></mrow></math></span> then we have the following finite free resolution of <span class="math"><i>M</i></span></p>
<div class="hc mathdisplay"><a id="uid66"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow></mover><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub><mo>+</mo><msub><mi>p</mi> <mi>m</mi> </msub><mrow><mo>)</mo></mrow></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>3</mn></mrow> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>3</mn></mrow> </msub></mrow></mover><mo>...</mo><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></td><td class="eqno">(9)</td></tr></table></div>
<p class="nofirst noindent">with the following notations:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>T</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>R</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mspace width="1.em"></mspace><msub><mi>S</mi> <mi>m</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub><mo>+</mo><msub><mi>p</mi> <mi>m</mi> </msub><mrow><mo>)</mo></mrow></mrow> </msup><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>T</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>R</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub><mo>+</mo><msub><mi>p</mi> <mi>m</mi> </msub><mrow><mo>)</mo><mo>×</mo></mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>3</mn></mrow> </msub></mrow> </msup><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
</li>
<li id="uid67"><p class="nofirst noindent">If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>m</mi><mo>=</mo><mn>2</mn></mrow></math></span> and there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>S</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>×</mo><msub><mi>p</mi> <mn>2</mn> </msub></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>S</mi> <mn>2</mn> </msub><mo>=</mo><msub><mi>I</mi> <msub><mi>p</mi> <mn>2</mn> </msub> </msub><mo>,</mo></mrow></math></span> then we have the following finite free resolution of <span class="math"><i>M</i></span></p>
<div class="hc mathdisplay"><a id="uid68"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mn>1</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msub><mi>p</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#964;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></td><td class="eqno">(10)</td></tr></table></div>
<p class="nofirst noindent">with the notations <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>T</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>R</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>S</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mn>1</mn> </msub><mrow><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msub><mi>p</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow> </msup></mrow></math></span> and:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd columnalign="right"><mrow><mi>&#964;</mi><mo>=</mo><mi>&#960;</mi><mo>&#8853;</mo><mn>0</mn><mo>:</mo><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msub><mi>p</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow> </msup></mrow></mtd><mtd><mo>&#8594;</mo></mtd><mtd columnalign="left"><mi>M</mi></mtd></mtr><mtr><mtd columnalign="right"><mrow><mrow><mi>&#955;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>&#955;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mo>&#8614;</mo></mtd><mtd columnalign="left"><mrow><mrow><mi>&#964;</mi><mo>(</mo><mi>&#955;</mi><mo>)</mo><mo>=</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></math></div>
</li></ol>
</div>
<div class="theorem-remark"><p><a><b id="uid69">Remark 2</b></a></p>

<p><i>We note that Proposition <a href="#uid63">2</a> holds for every (commutative) ring <span class="math"><i>D</i></span>.</i></p>
</div>
<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and let us suppose that the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is projective (using the results summed up in Figure <a href="#uid43">1</a>, we can constructively check this result). Using 1 of Proposition <a href="#uid56">1</a>, we obtain that the exact sequence (<a href="#uid64">8</a>) splits (see 5 of Definition <a href="#uid10">2</a>), and thus, there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>S</mi> <mi>m</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mrow><mi>m</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>×</mo><msub><mi>p</mi> <mi>m</mi> </msub></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mi>m</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>S</mi> <mi>m</mi> </msub><mo>=</mo><msub><mi>I</mi> <msub><mi>p</mi> <mi>m</mi> </msub> </msub></mrow></math></span>. Repeating inductively the same method with the new finite free resolution of <span class="math"><i>M</i></span>, we can assume that we have the finite free resolution of <span class="math"><i>M</i></span>:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msubsup><mi>R</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>1</mn> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">As <span class="math"><i>M</i></span> is a projective <span class="math"><i>D</i></span>-module, by 1 of Proposition <a href="#uid56">1</a>, the previous exact sequence splits and thus, there exists a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>S</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>×</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>R</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>S</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><msub><mi>I</mi> <msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup> </msub></mrow></math></span>. By 1 of Proposition <a href="#uid63">2</a>, we then get the finite free resolution of <span class="math"><i>M</i></span>:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mrow><mo>.</mo><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></mover><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mrow><mo>.</mo><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>T</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>. Again, as <span class="math"><i>M</i></span> is a projective <span class="math"><i>D</i></span>-module, by 1 of Proposition <a href="#uid56">1</a>, the previous exact sequence splits and there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>S</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo><mo>×</mo></mrow><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>S</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><msub><mi>I</mi> <msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup> </msub></mrow></math></span>. Using 2 of Proposition <a href="#uid63">2</a>, we obtain the following finite free presentation of the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>T</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo><mo>)</mo></mrow></mrow></math></span></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mrow><mo>.</mo><mo>(</mo></mrow><msub><mi>T</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></mover><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#960;</mi> <mo>&#8242;</mo> </msup></math></span> denotes the standard projection on <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mo>&#8242;</mo> </msup></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#964;</mi><mo>:</mo><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8594;</mo><mi>M</mi></mrow></math></span> is defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>&#964;</mi><mo>(</mo><mi>m</mi><mo>)</mo><mo>=</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>, for all <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>&#955;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>&#955;</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msub><mi>p</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow> </msup></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>m</mi><mo>=</mo><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow></mrow></math></span>. Moreover, 2 of Proposition <a href="#uid56">1</a> says that &#964; is an isomorphism, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8773;</mo><mi>M</mi></mrow></math></span>, a fact that can be also directly checked. We then obtain the following result.</p>
<div class="theorem-corollary"><p><a><b id="uid70">Corollary 2</b></a></p>

<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> be a commutative polynomial ring over a field <span class="math"><i>k</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>. If the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is projective, then there exists
a full row rank matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><a id="uid71"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></td><td class="eqno">(11)</td></tr></table></div>
</div>
<p>We refer to Example <a href="#uid195">14</a> for an illustration of Corollary <a href="#uid70">2</a>. See also <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid48" title="A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from wwwb.math.rwth-aachen.de/OreModules.">[54]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a>.</p>
<p>We note that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo></mrow><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow></math></span>.</p>
<p>Finally, we have the following short exact sequence of the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mo>&#8242;</mo> </msup></math></span></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">and using the fact that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8773;</mo><mi>M</mi></mrow></math></span> and <span class="math"><i>M</i></span> is a projective <span class="math"><i>D</i></span>-module, by 1 of Proposition <a href="#uid56">1</a>, we obtain that the previous exact sequence splits and we then get (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>)</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>&#8853;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">which, by 2 of Definition <a href="#uid25">3</a>, shows that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> is a stably free <span class="math"><i>D</i></span>-module.</p>
<div class="theorem-corollary"><p><a><b id="uid72">Corollary 3 (Serre <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>, <a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a>)</b></a></p>


<p>Every projective <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module <span class="math"><i>M</i></span> is stably free.</p>
</div>

<h2 id="uid73">3.2. Stably free and free modules</h2>
<p>Let <span class="math"><i>M</i></span> be a stably free module over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, where <span class="math"><i>k</i></span> is a field.
Using Corollary <a href="#uid70">2</a>, we can always suppose that <span class="math"><i>M</i></span> has the form <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> admits a right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span>. We note that <span class="math"><i>R</i></span> has then full row rank (<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><mn>0</mn><mo>&#8658;</mo><mi>&#955;</mi><mo>=</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mo>=</mo><mn>0</mn></mrow></math></span>). Let us characterize when <span class="math"><i>M</i></span> is a free <span class="math"><i>D</i></span>-module.</p>
<p>In order to do that, we first need to introduce a definition.</p>
<div class="theorem-definition"><p><a><b id="uid74">Definition 6</b></a></p>

<p><i>Let <span class="math"><i>D</i></span> be a ring. The </i>general linear group<i> <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> is then defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mi>U</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mo>&#8707;</mo><mspace width="0.277778em"></mspace><mi>V</mi><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup><mo>:</mo><mspace width="0.277778em"></mspace><mi>U</mi><mspace width="0.166667em"></mspace><mi>V</mi><mo>=</mo><mi>V</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><msub><mi>I</mi> <mi>p</mi> </msub><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>An element <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> is called a </i>unimodular matrix<i>.</i></p>
</div>
<p>In the case where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, we note that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> iff the determinant <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>U</mi></mrow></math></span> of <span class="math"><i>U</i></span> is invertible in <span class="math"><i>D</i></span>, i.e., is a non-zero element of <span class="math"><i>k</i></span>. The following result holds for every (commutative) ring <span class="math"><i>D</i></span>.</p>
<div class="theorem-lemma"><p><a><b id="uid75">Lemma 1</b></a></p>

<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a matrix which admits a right-inverse over <span class="math"><i>D</i></span>. Then, the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is free if and only if there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</p>
</div>
<p>Indeed, let us suppose that there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span> and let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>J</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>. We easily check that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>J</mi><mo>)</mo><mo>=</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mrow></math></span>. Moreover, using the facts that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mi>J</mi></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we obtain the following commutative exact diagram</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8741;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8595;</mo><mo>.</mo><mi>U</mi></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>J</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#954;</mi></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">which proves that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mrow></math></span>, i.e., <span class="math"><i>M</i></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow></math></span>.</p>
<p>Conversely, let us suppose that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mrow></math></span>. Combining the isomorphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#968;</mi><mo>:</mo><mi>M</mi><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mrow></math></span> and the short exact sequence</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover><mi>M</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">we then obtain the following exact sequence:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mi>&#968;</mi><mo>&#8728;</mo><mi>&#960;</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">If we consider the matrix which corresponds to the <span class="math"><i>D</i></span>-morphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#968;</mi><mo>&#8728;</mo><mi>&#960;</mi></mrow></math></span> in the canonical bases of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></math></span>, we then obtain a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>:</mo><mspace width="1.em"></mspace><mrow><mo>(</mo><mi>&#968;</mi><mo>&#8728;</mo><mi>&#960;</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow><mo>=</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">By 1 of Proposition <a href="#uid56">1</a>, the previous exact sequence splits, i.e., we have</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>Q</mi></mrow></mover></mtd><mtd><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>S</mi></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>T</mi></mrow></mover></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">(equivalentlty)</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mrow></mtd><mtd><mtable><mtr><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd></mtr><mtr><mtd><munder><mo>&#8592;</mo> <mrow><mo>.</mo><mi>S</mi></mrow></munder></mtd></mtr></mtable></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mtable><mtr><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>Q</mi></mrow></mover></mtd></mtr><mtr><mtd><munder><mo>&#8592;</mo> <mrow><mo>.</mo><mi>T</mi></mrow></munder></mtd></mtr></mtable></mtd><mtd><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msup><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">or, equivalently, there exists a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> such that the following Bézout identities hold (see <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</a>, <a href="#bid52" title="A. Quadrat, ``A lattice approach to analysis and synthesis problems´´, Mathematics of Control, Signa...">[52]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details):</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mspace width="0.166667em"></mspace><mrow><mo>(</mo><mi>S</mi><mspace width="1.em"></mspace><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>I</mi> <mi>q</mi> </msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi> <mrow><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow> </msub></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><mrow><mo>(</mo><mi>S</mi><mspace width="1.em"></mspace><mi>Q</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>I</mi> <mi>p</mi> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">In particular, we obtain that there exists a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>=</mo><mrow><mo>(</mo><mi>S</mi><mspace width="1.em"></mspace><mi>Q</mi><mo>)</mo></mrow><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> satisfying:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">Finally, the family <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>{</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>T</mi> <mi>i</mi> </msub><mrow><mo>)</mo></mrow><msub><mo>}</mo> <mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow> </msub></mrow></math></span> forms a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi> <mi>i</mi> </msub></math></span> denotes the <span class="math"><i>i</i></span><sup>th</sup> row of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>.</p>
<p>We are now in position to state the famous Quillen-Suslin theorem (<a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>).</p>
<div class="theorem-theorem"><p><a><b id="uid76">Theorem 6 (<a href="#bid14" title="D. Quillen, ``Projective modules over polynomial rings´´, Invent. Math., 36 (1976), 167-171.">[56]</a>, <a href="#bid15" title="A. A. Suslin, ``Projective modules over polynomial rings are free´´, Dokl. Akad. Nauk. S.S.S.R, 229 ...">[58]</a>)</b></a></p>


<p>(Quillen-Suslin theorem) Let <span class="math"><i>A</i></span> be a principal ideal domain (e.g., a field <span class="math"><i>k</i></span>) and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> a polynomial ring with coefficients in <span class="math"><i>A</i></span>. Moreover, let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a matrix which admits a right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mo>=</mo><msub><mi>I</mi> <mi>q</mi> </msub></mrow></math></span>. Then, there exists a unimodular <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> satisfying:</p>
<div class="hc mathdisplay"><a id="uid77"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo><mo>.</mo></mrow></mrow></math></td><td class="eqno">(12)</td></tr></table></div>
</div>
<p>Using Lemma <a href="#uid75">1</a> and Theorem <a href="#uid76">6</a>, we obtain the following important corollary.</p>
<div class="theorem-corollary"><p><a><b id="uid78">Corollary 4 (<a href="#bid14" title="D. Quillen, ``Projective modules over polynomial rings´´, Invent. Math., 36 (1976), 167-171.">[56]</a>, <a href="#bid15" title="A. A. Suslin, ``Projective modules over polynomial rings are free´´, Dokl. Akad. Nauk. S.S.S.R, 229 ...">[58]</a>)</b></a></p>


<p>(Quillen-Suslin) Let <span class="math"><i>A</i></span> be a principal ideal domain (e.g., a field <span class="math"><i>k</i></span>) and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. Then, every stably free <span class="math"><i>D</i></span>-module is free.</p>
</div>
<p>Moreover, the problem of finding a basis of a free finitely generated <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> can be reformulated in terms of matrices as follows:</p>
<div class="theorem-problem"><p><a><b id="uid79">Problem 1</b></a></p>

<p><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a matrix which admits a right-inverse over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>.
Find a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</i></p>
</div>
<p>The previous problem is equivalent to completing <span class="math"><i>R</i></span> to a square invertible matrix:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p>The Quillen-Suslin theorem states that Problem <a href="#uid79">1</a> has always a solution over a polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> with coefficients in a principal ring <span class="math"><i>A</i></span> and, in particular, in a field <span class="math"><i>k</i></span>. In what follows, an algorithm which computes such a matrix <span class="math"><i>U</i></span> will be called a <i>QS-algorithm</i>.</p>
<p>Let us consider a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> which admits a right-inverse
over <span class="math"><i>D</i></span> and let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mi>i</mi> </msub></math></span> the <span class="math"><i>i</i></span><sup>th</sup> row of <span class="math"><i>R</i></span>. We note that the row <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> admits a right-inverse over <span class="math"><i>D</i></span>. Let us suppose that we can find a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mi>q</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow><mo>.</mo></mrow></math></span>
Then, we have</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>1</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>&#9734;</mo></mtd><mtd><msub><mi>R</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow> </msup></mrow></math></span> and &#9734; denotes a certain element of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>×</mo><mn>1</mn></mrow> </msup></math></span>.
Hence, we restrict our considerations to the new matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mn>2</mn> </msub></math></span>, which can easily be shown to admit a right-inverse over <span class="math"><i>D</i></span>, and reduce Problem <a href="#uid79">1</a> to the following one:</p>
<div class="theorem-problem"><p><a><b id="uid80">Problem 2</b></a></p>

<p><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a row vector which admits a right-inverse over <span class="math"><i>D</i></span>.
Find a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>.</i></p>
</div>
<p>The purpose of the next paragraphs is to recall a QS-algorithm solving Problem <a href="#uid80">2</a> over a commutative polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> over a computable field <span class="math"><i>k</i></span> (for instance, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>k</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi></mrow></math></span>). This algorithm was implemented in the package <span class="smallcap">QuillenSuslin</span> (<a href="#bid29" title="A. Fabia&#324;ska, QuillenSuslin project: A package for computing bases of free modules over commutative ...">[13]</a>). See also the Appendix. We also point out that a QS-algorithm has also been implemented in <span class="smallcap">QuillenSuslin</span> for the case <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>.
Even though there are some differences in the constructive proofs of the Quillen-Suslin theorem developed in <a href="#bid21" title="N. Fitchas, A. Galligo, ``Nullstellensatz effectif et conjecture de Serre (Théorème de Quillen-Susli...">[15]</a>, <a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>, <a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid26" title="H. Park, C. Woodburn, ``An algorithmic proof of Suslin´s stability theorem for polynomial rings´´, J...">[37]</a>, <a href="#bid50" title="L. N. Vaser&#353;tein, A. A. Suslin, ``Serre´s Problem on projective modules over polynomial rings and al...">[59]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>,
we note that our algorithm is based on the same main idea, i.e., it proceeds by induction on the number of variables <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>x</mi> <mi>i</mi> </msub></math></span> in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. Each inductive step of the general QS-algorithm reduces the problem to the case with one variable less. A more global and interesting approach has recently been developed in <a href="#bid25" title="H. Lombardi, I. Yengui, ``Suslin´s algorithms for reduction of unimodular rows´´, Journal of Symboli...">[29]</a>, <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a> which needs to be studied with care in the future.</p>

<h2 id="uid81">3.3. Solution of Problem <a href="#uid80">2</a> in some special cases</h2>
<p>Although the tedious inductive method, which will be explained in the next section, cannot generally be avoided, there are cases where simpler and faster heuristic methods can be used. We shall first consider such cases.</p>
<h3 id="uid82">3.3.1. Matrices over a principal ideal domain <span class="math"><i>D</i></span></h3>
<p>We first consider the special case of matrices over a principal ideal domain <span class="math"><i>D</i></span> (e.g., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><i>k</i></span> a field, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="double-struck">Z</mi></math></span>).
Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a matrix which admits a right-inverse over <span class="math"><i>D</i></span>. Then, computing the <i>Smith normal form</i> of <span class="math"><i>R</i></span> (<a href="#bid11" title="J. W. Polderman, J. C. Willems, Introduction to Mathematical Systems Theory. A Behavioral Approach, ...">[42]</a>), we obtain two matrices <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>F</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>q</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>G</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> satisfying:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mi>F</mi><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>G</mi><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">If we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>r</mi><mo>=</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>G</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>G</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>G</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>G</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>G</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>r</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>G</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span>, then we get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>=</mo><mi>F</mi><mspace width="0.166667em"></mspace><msub><mi>G</mi> <mn>1</mn> </msub></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>G</mi> <mn>1</mn> </msub><mo>=</mo><msup><mi>F</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>, and thus, we get</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd columnalign="left"><mrow><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msup><mi>F</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></mtd></mtr><mtr><mtd><msub><mi>G</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo></mrow><msub><mi>I</mi> <mi>p</mi> </msub><mspace width="1.em"></mspace><mo>&#8658;</mo><mspace width="1.em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>F</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi> <mi>r</mi> </msub></mtd></mtr></mtable></mfenced><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><msub><mi>G</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo></mrow><msub><mi>I</mi> <mi>p</mi> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mo>&#8658;</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><msub><mi>G</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>F</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi> <mi>r</mi> </msub></mtd></mtr></mtable></mfenced><mo>=</mo><msub><mi>I</mi> <mi>p</mi> </msub><mspace width="1.em"></mspace><mo>&#8658;</mo><mspace width="1.em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><msub><mi>G</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>F</mi><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo></mrow><msub><mi>I</mi> <mi>p</mi> </msub><mo>,</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">which solves Problem <a href="#uid79">1</a> as we can take <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>H</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>F</mi><mspace width="1.em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>=</mo><msub><mi>G</mi> <mn>2</mn> </msub></mrow></math></span>.</p>

<h3 id="uid83">3.3.2. <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>×</mo><mi>p</mi></mrow></math></span> matrices over an arbitrary commutative ring <span class="math"><i>D</i></span></h3>
<p>Let us consider the case of a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> which admits a right-inverse over a commutative ring <span class="math"><i>D</i></span>. If we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>m</mi> <mi>i</mi> </msub></math></span> the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></math></span> minor of <span class="math"><i>R</i></span> obtained by removing the <span class="math"><i>i</i></span> <sup>th</sup> column of <span class="math"><i>R</i></span>, then, using the fact <span class="math"><i>R</i></span> admits right-inverse, we get that
the family <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>m</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>p</mi></mrow> </msub></mrow></math></span> satisfies a Bézout identity <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>p</mi> </msubsup><msub><mi>n</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mo>=</mo><mn>1</mn></mrow></math></span> for certain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>n</mi> <mi>i</mi> </msub><mo>&#8712;</mo><mi>D</mi></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>p</mi></mrow></math></span>. Let us denote by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd></mtd><mtd><mi>R</mi></mtd><mtd></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>1</mn></mrow><msup><mo>)</mo> <mrow><mi>p</mi><mo>+</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>n</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>1</mn></mrow><msup><mo>)</mo> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>n</mi> <mi>p</mi> </msub></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Expand the determinant of <span class="math"><i>V</i></span> along the last row, using the Laplace´s formula, we then get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>V</mi><mo>=</mo><mn>1</mn></mrow></math></span>. Hence, if we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> the inverse of the matrix <span class="math"><i>V</i></span>, we then obtain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mrow><mi>p</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>, which solves Problem <a href="#uid79">1</a>.</p>

<h3 id="uid84">3.3.3. <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>1</mn><mo>×</mo><mi>p</mi></mrow></math></span> rows over an arbitrary commutative ring <span class="math"><i>D</i></span></h3>
<p>We now consider Problem <a href="#uid80">2</a>, i.e., the case of a row vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>f</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> which admits a right-inverse over an arbitrary commutative ring <span class="math"><i>D</i></span>.</p>
<div class="theorem-remark"><p><a><b id="uid85">Remark 3 (Special form of the row)</b></a></p>


<ol>
<li id="uid86"><p class="nofirst noindent"><i>We note that if one of the components of <span class="math"><i>f</i></span> is an invertible element of <span class="math"><i>D</i></span>, we can then transform the row <span class="math"><i>f</i></span> into
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>
by means of trivial elementary operations. For instance, if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>f</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mo>&#8712;</mo><mi>D</mi></mrow></math></span>, then the matrix defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msubsup><mi>f</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi> <mrow><mi>p</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>W</mi><mo>=</mo><msubsup><mi>f</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mo>&#8712;</mo><mi>D</mi></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace></mrow><msub><mi>f</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.
Then, simple elementary operations transform <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi></mrow></math></span> into the vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>.</i></p>
<i></i></li>
<li id="uid87"><p class="nofirst noindent"><i>Another simple case is when two components of <span class="math"><i>f</i></span> generate <span class="math"><i>D</i></span>.
Let us suppose that there exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>h</mi> <mn>1</mn> </msub></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>h</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi>D</mi></mrow></math></span> such that we have the Bézout identity
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>f</mi> <mn>1</mn> </msub><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>f</mi> <mn>2</mn> </msub><msub><mi>h</mi> <mn>2</mn> </msub><mo>=</mo><mn>1</mn></mrow></math></span>
and let us define the following matrix:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>h</mi> <mn>1</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>f</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>h</mi> <mn>2</mn> </msub></mtd><mtd><msub><mi>f</mi> <mn>1</mn> </msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi> <mrow><mi>p</mi><mo>&#8211;</mo><mn>2</mn></mrow> </msub></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We easily check that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>W</mi><mo>=</mo><mn>1</mn></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace></mrow><msub><mi>f</mi> <mn>3</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.
Then, we can reduce <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi></mrow></math></span> to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span> by means of elementary operations.</i></p>
<i></i></li>
<li id="uid88"><p class="nofirst noindent"><i>
If the <span class="math"><i>i</i></span><sup>th</sup> component of <span class="math"><i>f</i></span> is 0 or the ideal generated by the elements <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>f</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>f</mi> <mrow><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo></mrow></math></span> <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>f</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>f</mi> <mi>p</mi> </msub></mrow></math></span> is already <span class="math"><i>D</i></span>,
then we can follow an idea analogous to the one developed in <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a>.
Let us suppose that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi> <mn>1</mn> </msub></math></span> is a redundant component in the sense that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msub><mi>f</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>f</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>=</mo><mi>D</mi></mrow></mrow></math></span>. Then, there exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>h</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>h</mi> <mi>p</mi> </msub><mo>&#8712;</mo><mi>D</mi></mrow></math></span> satisfying the Bézout equation <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>2</mn></mrow> <mi>p</mi> </msubsup><msub><mi>f</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mi>i</mi> </msub><mo>=</mo><mn>1</mn></mrow></math></span>. Then, the matrix</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>f</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>h</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mn>1</mn></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mo>&#8942;</mo></mtd><mtd></mtd><mtd><mo>&#8945;</mo></mtd><mtd></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>f</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>h</mi> <mi>p</mi> </msub></mrow></mtd><mtd></mtd><mtd></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace></mrow><msub><mi>f</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>W</mi><mo>=</mo><mn>1</mn></mrow></math></span>.
We can now reduce <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi></mrow></math></span> to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span> by means of elementary operations.</i></p>
<i></i><p><i>In particular, this strategy is always successful when the length <span class="math"><i>p</i></span> of the row <span class="math"><i>f</i></span> exceeds the </i>stable range<i> of the ring <span class="math"><i>D</i></span>. We note that the stable range of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">R</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> is equal to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>n</mi><mo>+</mo><mn>1</mn></mrow></math></span>. We refer the reader to <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a> for more details.</i></p>
</li></ol>
</div>
<p>We note that all the conditions given in Remark <a href="#uid85">3</a> can be checked using Gröbner or Janet bases.</p>
<p>The matrix <span class="math"><i>U</i></span> can also be easily computed in cases where a right-inverse <span class="math"><i>g</i></span> of the row <span class="math"><i>f</i></span> has a special form.</p>
<div class="theorem-remark"><p><a><b id="uid89">Remark 4 (Special form of the right-inverse)</b></a></p>


<p><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>g</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span> be the right-inverse of the unimodular row <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>g</mi></mrow></math></span>=1.</i></p>
<ol>
<li id="uid90"><p class="nofirst noindent"><i>Let us suppose that one of the entries of a right-inverse <span class="math"><i>g</i></span> of <span class="math"><i>f</i></span>, say <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>g</mi> <mn>1</mn> </msub></math></span>, is invertible in <span class="math"><i>D</i></span>. Then, the following matrix</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>g</mi> <mn>1</mn> </msub></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>g</mi> <mn>2</mn> </msub></mtd><mtd><mn>1</mn></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mo>&#8942;</mo></mtd><mtd></mtd><mtd><mo>&#8945;</mo></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>g</mi> <mi>p</mi> </msub></mtd><mtd></mtd><mtd></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>W</mi><mo>=</mo><msub><mi>g</mi> <mn>1</mn> </msub></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace></mrow><msub><mi>f</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. As <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>g</mi> <mn>1</mn> </msub></math></span> is an invertible element of <span class="math"><i>D</i></span>, then <span class="math"><i>W</i></span> is a unimodular matrix and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi></mrow></math></span> can easily be transformed into <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span> by means of elementary operations.</i></p>
</li>
<li id="uid91"><p class="nofirst noindent"><i>If two components <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>g</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>g</mi> <mn>2</mn> </msub></mrow></math></span> of <span class="math"><i>g</i></span> generate the whole ring <span class="math"><i>D</i></span>, then there exist elements <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>h</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>h</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi>D</mi></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>g</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>g</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>2</mn> </msub><mo>=</mo><mn>1</mn></mrow></math></span>. Then, the matrix defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>g</mi> <mn>1</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>h</mi> <mn>2</mn> </msub></mrow></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>g</mi> <mn>2</mn> </msub></mtd><mtd><msub><mi>h</mi> <mn>1</mn> </msub></mtd><mtd></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>g</mi> <mn>3</mn> </msub></mtd><mtd></mtd><mtd><mn>1</mn></mtd><mtd></mtd><mtd></mtd></mtr><mtr><mtd><mo>&#8942;</mo></mtd><mtd></mtd><mtd></mtd><mtd><mo>&#8945;</mo></mtd><mtd></mtd></mtr><mtr><mtd><msub><mi>g</mi> <mi>p</mi> </msub></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><mi>W</mi><mo>=</mo><mn>1</mn></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mo>&#9734;</mo><mspace width="0.277778em"></mspace></mrow><msub><mi>f</mi> <mn>3</mn> </msub><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><msub><mi>f</mi> <mi>p</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>, where &#9734; denotes a certain element of <span class="math"><i>D</i></span>.
We can then reduce <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>W</mi></mrow></math></span> to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span> by means of elementary operations.</i></p>
<p><i></i></p>
</li></ol>
</div>
<p>Finally, we also note that if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> admits a right-inverse <span class="math"><i>g</i></span> over <span class="math"><i>D</i></span> for which any of the heuristic methods explained in Remark <a href="#uid85">3</a> may be used for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>g</mi> <mi>T</mi> </msup></math></span>, then a unimodular matrix <span class="math"><i>V</i></span> having <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>g</mi> <mi>T</mi> </msup></math></span> as a first row can be easily computed. Then, the product <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><msup><mi>V</mi> <mi>T</mi> </msup><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mo>&#9734;</mo><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mo>&#9734;</mo><mo>)</mo></mrow></mrow></math></span> can be reduced to the first standard basis vector by elementary column operations.</p>
<p>For instance, let us illustrate 1 of Remark <a href="#uid89">4</a>. In some of the illustrating examples, we shall also use the notation <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>z</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> as these examples come from the control theory and signal processing literatures where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>z</mi> <mi>i</mi> </msub></math></span> is commonly used. The independent variables <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>z</mi> <mi>i</mi> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi></mrow></math></span>, usually denote the variables appearing in the discrete Laplace transform.</p>
<div class="theorem-example"><p><a><b id="uid92">Example 4</b></a></p>

<p><i>Let us consider <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>z</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and the following row vector:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn><mspace width="1.em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>+</mo><mn>1</mn><mspace width="1.em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>We can easily check that <span class="math"><i>R</i></span> admits the following right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>S</mi><mo>=</mo><mo>(</mo><mo>&#8211;</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="1.em"></mspace><mn>1</mn><mspace width="1.em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>.
As the second component of <span class="math"><i>S</i></span> is invertible over <span class="math"><i>D</i></span>, we can apply 1 of Remark <a href="#uid89">4</a> in order to find a unimodular matrix <span class="math"><i>U</i></span> over <span class="math"><i>D</i></span> which satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>. Let us define the following elementary matrices:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>1</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We then have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="1.em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn><mspace width="1.em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. Finally, if we denote by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>3</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>we then have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>, where the unimodular <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>=</mo><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>3</mn> </msub></mrow></math></span> is defined by:</i></p>
<div class="hc mathdisplay"><a id="uid93"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd></mtr><mtr><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></td><td class="eqno">(13)</td></tr></table></div>
<p class="nofirst noindent"><i></i></p>
</div>

<h2 id="uid94">3.4. A QS-algorithm for commutative polynomial rings</h2>
<p>Over an arbitrary commutative ring <span class="math"><i>A</i></span>, not every row admitting a right-inverse can be completed to a unimodular matrix over <span class="math"><i>A</i></span>. The module-theoretic interpretation of this result is that, over certain rings, there exist stably free modules which are not free. For instance, using a classical topological theorem on vector fields on the sphere <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi mathvariant="double-struck">S</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi mathvariant="double-struck">R</mi><mo>)</mo></mrow></mrow></math></span>, we can prove that the row vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>x</mi> <mn>3</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> with entries in the commutative ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">R</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>3</mn> </msub><mrow><mo>]</mo><mo>/</mo><mo>(</mo></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>x</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mrow></math></span>, which admits the right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mi>T</mi> </msup></math></span>, cannot be completed to a unimodular matrix over <span class="math"><i>D</i></span>. For more details, see <a href="#bid17" title="T. Y. Lam, Serre´s Problem on projective Modules, Springer Monograph in Mathematics, Springer Verlag, 2006.">[25]</a>.</p>
<p>However, it is always possible over a polynomial ring with coefficients on a field <span class="math"><i>k</i></span> or a principal ideal domain <span class="math"><i>A</i></span>. See Quillen-Suslin Theorem <a href="#uid76">6</a>. We shortly describe a QS-algorithm which has recently been implemented in a package called <span class="smallcap">QuillenSuslin</span> (<a href="#bid29" title="A. Fabia&#324;ska, QuillenSuslin project: A package for computing bases of free modules over commutative ...">[13]</a>). See the Appendix for more details. In what follows, we shall only consider a commutative polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> over a field <span class="math"><i>k</i></span> even if the extension of the algorithms exists when <span class="math"><i>k</i></span> is replaced by a principal ideal ring <span class="math"><i>A</i></span>. For instance, the case of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>A</mi><mo>=</mo><mi mathvariant="double-struck">Z</mi></mrow></math></span> has also been implemented in <span class="smallcap">QuillenSuslin</span>.
Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a row vector which admits a right-inverse <span class="math"><i>g</i></span> over <span class="math"><i>D</i></span>. When no method explained in Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a> can be applied to <span class="math"><i>f</i></span>, we then need to consider a general algorithm. However, we point out that most of the examples we know do not require the general algorithm as the previous heuristic methods are generally enough to get the result.</p>
<p>The QS-algorithm proceeds by induction on the number <span class="math"><i>n</i></span> of independent variables <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>x</mi> <mi>i</mi> </msub></math></span> of the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>.
Each inductive step, which simplifies the problem to the case of a polynomial ring containing one variable less, consists of three
main parts:</p>
<ol>
<li id="uid95"><p class="nofirst noindent">Finding a normalized component in the last variable of the polynomial ring.</p>
<p></p>
</li>
<li id="uid96"><p class="nofirst noindent">Computing finitely many local solutions of Problem <a href="#uid80">2</a> over certain local rings (local loop).</p>
<p></p>
</li>
<li id="uid97"><p class="nofirst noindent">Patching/glueing the local solutions together in order to obtain a global one.</p>
</li></ol>
<h3 id="uid98">3.4.1. Normalization Step</h3>
<p>The next lemma is essential for Horrocks´ theorem which is used in the local loop.</p>
<div class="theorem-lemma"><p><a><b id="uid99">Lemma 2 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>)</b></a></p>


<p>Let us consider <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>a</mi><mo>&#8712;</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>y</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>m</mi><mo>=</mo><mo form="prefix">deg</mo><mo>(</mo><mi>a</mi><mo>)</mo><mo>+</mo><mn>1</mn></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo form="prefix">deg</mo><mo>(</mo><mi>a</mi><mo>)</mo></mrow></math></span> denotes the total degree of <span class="math"><i>a</i></span>. Using the following invertible transformation</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mi>n</mi> </msub><mo>=</mo><msub><mi>y</mi> <mi>n</mi> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mi>i</mi> </msub><mo>=</mo><msub><mi>y</mi> <mi>i</mi> </msub><mo>&#8211;</mo><msubsup><mi>y</mi> <mi>n</mi> <msup><mi>m</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi></mrow> </msup> </msubsup><mo>,</mo><mspace width="1.em"></mspace><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>n</mi><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced><mo>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mi>n</mi> </msub><mo>=</mo><msub><mi>x</mi> <mi>n</mi> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mi>i</mi> </msub><mo>=</mo><msub><mi>x</mi> <mi>i</mi> </msub><mo>+</mo><msubsup><mi>x</mi> <mi>n</mi> <msup><mi>m</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi></mrow> </msup> </msubsup><mo>,</mo><mspace width="1.em"></mspace><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>n</mi><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent">we obtain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>a</mi><mo>(</mo></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>y</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>=</mo><mi>r</mi><mspace width="0.166667em"></mspace><mi>b</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></span>
where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8800;</mo><mi>r</mi><mo>&#8712;</mo><mi>k</mi></mrow></math></span> and <span class="math"><i>b</i></span> is a <i>monic polynomial</i> in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>x</mi> <mi>n</mi> </msub></math></span> with coefficients in the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>E</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, namely, the leading coefficient of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>b</mi><mo>&#8712;</mo><mi>E</mi><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> is 1.</p>
</div>
<p>In the case where <span class="math"><i>k</i></span> is an infinite field, we can achieve the same result by using only a linear transformation whose coefficients are appropriately chosen (<a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>). The normalization step can also be generalized to the case <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, where <span class="math"><i>A</i></span> is is a principal ideal domain. See <a href="#bid50" title="L. N. Vaser&#353;tein, A. A. Suslin, ``Serre´s Problem on projective modules over polynomial rings and al...">[59]</a> for more details.</p>

<h3 id="uid100">3.4.2. Local Loop</h3>
<p>In the second step, we need to compute a finite number of <i>local solutions</i> of Problem <a href="#uid80">2</a> over a local ring ring <span class="math"><i>A</i></span>, namely, a ring <span class="math"><i>A</i></span> which has only one maximal ideal, i.e., a proper ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">M</mi></math></span> of <span class="math"><i>A</i></span> which is not properly contained in any ideal of <span class="math"><i>A</i></span> other than <span class="math"><i>A</i></span> itself. In order to do that, we use the so-called Horrocks´ theorem. Let us recall it.</p>
<div class="theorem-theorem"><p><a><b id="uid101">Theorem 7 (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>)</b></a></p>


<p>Let <span class="math"><i>B</i></span> be a local ring and <span class="math"><i>f</i></span> a row vector which admits a right-inverse over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>B</mi><mo>[</mo><mi>y</mi><mo>]</mo></mrow></math></span>. If one of the components <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi> <mi>i</mi> </msub></math></span> of <span class="math"><i>f</i></span> is monic, then there exists a unimodular matrix <span class="math"><i>U</i></span> over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>B</mi><mo>[</mo><mi>y</mi><mo>]</mo></mrow></math></span> such that <span class="math"><i>f</i></span> is the first row of <span class="math"><i>U</i></span> or, equivalently, such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</p>
</div>
<p>Horrocks´ theorem can easily be implemented using, for instance, the approaches developed in <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>. In particular, the implementation in <span class="smallcap">QuillenSuslin</span> of this theorem follows <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>. If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">M</mi></math></span> is a maximal ideal of <span class="math"><i>D</i></span>, we then denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mi mathvariant="script">M</mi> </msub></math></span> the local ring, which is a standard <i>localization</i> of <span class="math"><i>D</i></span> with respect to the multiplicative closed subset <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi><mo>=</mo><mi>D</mi><mo>\</mo><mi mathvariant="script">M</mi></mrow></math></span> of <span class="math"><i>D</i></span>, namely, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>D</mi> <mi mathvariant="script">M</mi> </msub><mrow><mo>=</mo><mo>{</mo><mi>a</mi><mo>/</mo><mi>b</mi><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>a</mi><mo>&#8712;</mo><mi>D</mi><mo>,</mo><mspace width="0.277778em"></mspace><mi>b</mi><mo>&#8713;</mo><mi mathvariant="script">M</mi><mo>}</mo></mrow></mrow></math></span> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>).</p>
<p>We can now give the first main part of the general algorithm (<a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>).</p>
<div class="theorem-algorithm"><p><a><b id="uid102">Algorithm 1</b></a></p>

<ul><p><i></i></p>
<li id="uid103"><p class="nofirst noindent"><i></i><b>Input:</b><i> Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> a row vector which admits a right-inverse over <span class="math"><i>D</i></span> and
a monic component in the last variable <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>x</mi> <mi>n</mi> </msub></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid104"><p class="nofirst noindent"><i></i><b>Output:</b><i> A finite number of maximal ideals <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>E</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and unimodular matrices <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>H</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> over the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> which satisfy
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><msub><mi>H</mi> <mi>i</mi> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow><mo>,</mo></mrow></math></span>
and such that the ideal generated by the denominators of the matrices <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mi>i</mi> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow></math></span>, generate the ring <span class="math"><i>E</i></span>.</i></p>
</li></ul>
<ol>
<li id="uid105"><p class="nofirst noindent"><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">M</mi> <mn>1</mn> </msub></math></span> be an arbitrary maximal ideal of the ring <span class="math"><i>E</i></span>. Using Horrocks´ theorem, compute a unimodular matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mn>1</mn> </msub></math></span> over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> which satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><msub><mi>H</mi> <mn>1</mn> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</i></p>
</li>
<li id="uid106"><p class="nofirst noindent"><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>d</mi> <mn>1</mn> </msub><mo>&#8712;</mo><mi>E</mi></mrow></math></span> be the denominator of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mn>1</mn> </msub></math></span> and <span class="math"><i>J</i></span> the ideal in <span class="math"><i>E</i></span> generated by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi> <mn>1</mn> </msub></math></span>. Set <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid107"><p class="nofirst noindent"><i>While <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>J</mi><mo>&#8800;</mo><mi>E</mi></mrow></math></span>, do:</i></p>
<ol>
<li id="uid108"><p class="nofirst noindent"><i>For <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>:</mo><mo>=</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow></math></span>, compute a maximal ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">M</mi> <mi>i</mi> </msub></math></span> of <span class="math"><i>E</i></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>J</mi><mo>&#8834;</mo><msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid109"><p class="nofirst noindent"><i>Using Horrocks´ theorem, compute a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mi>i</mi> </msub></math></span> over the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><msub><mi>H</mi> <mi>i</mi> </msub></mrow></math></span> is invertible in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>
and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><msub><mi>H</mi> <mi>i</mi> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid110"><p class="nofirst noindent"><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi> <mi>i</mi> </msub></math></span> be the denominator of the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mi>i</mi> </msub></math></span> and consider the ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>J</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>d</mi> <mi>i</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.</i></p>
</li></ol>
</li>
<li id="uid111"><p class="nofirst noindent"><i>Return <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>H</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>d</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span>.</i></p>
</li></ol>
</div>
<p>The local loop stops when all the denominators <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi> <mi>i</mi> </msub></math></span> generate <span class="math"><i>E</i></span>.
As the ring <span class="math"><i>E</i></span> is noetherian (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>), the number of the local solutions, i.e., the cardinal of the set <span class="math"><i>I</i></span>, is finite.</p>

<h3 id="uid112">3.4.3. Patching</h3>
<p>To obtain a polynomial solution of Problem <a href="#uid79">1</a>, we use the following lemma.</p>
<div class="theorem-lemma"><p><a><b id="uid113">Lemma 3 (<a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a row vector which admits a right-inverse over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and <span class="math"><i>U</i></span> a unimodular matrix over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><msub><mo>]</mo> <mi mathvariant="script">M</mi> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">M</mi></math></span> is a certain maximal ideal of the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>E</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, which satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo><mo>.</mo></mrow></math></span>
Let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi><mo>&#8712;</mo><mi>E</mi></mrow></math></span> the denominator of <span class="math"><i>U</i></span>. Then, the matrix defined by</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>&#916;</mi><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mi>z</mi><mo>)</mo><mo>=</mo><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mo>+</mo><mrow><mi>z</mi><mo>)</mo><mo>&#8712;</mo><mo>(</mo></mrow><msub><mi>E</mi> <mi mathvariant="script">M</mi> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mi>z</mi><mo>]</mo></mrow><msup><mo>)</mo> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></div>
<p class="nofirst noindent">is such that</p>
<div class="hc mathdisplay"><a id="uid114"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>z</mi><mo>&#8712;</mo><mi>D</mi><mo>:</mo><mspace width="1.em"></mspace><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#916;</mi><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mi>z</mi><mo>)</mo><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mi>z</mi><mo>)</mo><mo>,</mo></mrow></mrow></math></td><td class="eqno">(14)</td></tr></table></div>
<p class="nofirst noindent">and its denominator is <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi> <mi>&#945;</mi> </msup></math></span> with <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8804;</mo><mi>&#945;</mi><mo>&#8804;</mo><mi>p</mi></mrow></math></span>.</p>
</div>
<p>(<a href="#uid114">14</a>) is clear as the identity <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span> implies that we have
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mo>+</mo><mrow><mi>z</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mi>z</mi><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mo>...</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span> and then:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mi>z</mi><mo>)</mo><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mo>+</mo><mi>z</mi><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>.</mo></mrow></math></div>
<p>Moreover, using the standard formula <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>=</mo><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mi>U</mi></mrow><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi> adj </mi><mrow><mo>(</mo><mi>U</mi><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi> adj </mi><mo>(</mo><mi>U</mi><mo>)</mo></mrow></math></span> denotes the adjugate of <span class="math"><i>U</i></span>, we can also prove that the common denominator of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>&#916;</mi><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mi>z</mi><mo>)</mo></mrow></mrow></math></span> is <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>d</mi> <mi>&#945;</mi> </msup></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>0</mn><mo>&#8804;</mo><mi>&#945;</mi><mo>&#8804;</mo><mi>p</mi></mrow></math></span>.</p>
<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi mathvariant="script">M</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>H</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>d</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> be the output of Algorithm <a href="#uid102">1</a>, where <span class="math"><i>I</i></span> is a finite set. Let us set <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>I</mi><mo>=</mo><mo>{</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>l</mi><mo>}</mo></mrow></math></span>. The ideal of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>E</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>]</mo></mrow></mrow></math></span> defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>d</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow> </msub></mrow></math></span> generates <span class="math"><i>E</i></span>. Hence, there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>c</mi> <mi>i</mi> </msub><mo>&#8712;</mo><mi>E</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>&#8712;</mo><mi>I</mi></mrow></math></span>, such that the Bézout identity holds:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display">
<mrow xmlns:xlink="http://www.w3.org/1999/xlink">
<munderover><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>l</mi> </munderover>
<msub><mi>c</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup><mo>=</mo><mn>1</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Let us define the following matrices</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mi>i</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mi>z</mi><mo>)</mo><mo>=</mo></mrow><msub><mi>H</mi> <mi>i</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>H</mi> <mi>i</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mi>z</mi><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>l</mi><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent">and, in order to simplify the notations, we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> the function <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. Then, we have:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.277778em"></mspace></mrow><msub><mi>&#916;</mi> <mn>1</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo><mo>=</mo></mrow><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo><mspace width="0.277778em"></mspace></mrow><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo><mo>=</mo></mrow><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mfenced separators="" open="(" close=")"><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")">
<munderover><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mn>2</mn> </munderover>
<msub><mi>c</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup></mfenced></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mspace width="213.39566pt"></mspace><mo>...</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mfenced separators="" open="(" close=")"><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mrow><mi>l</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><msub><mi>c</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup></mfenced></mfenced><mspace width="0.277778em"></mspace><msub><mi>&#916;</mi> <mi>l</mi> </msub><mfenced separators="" open="(" close=")"><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mrow><mi>l</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><msub><mi>c</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup></mfenced><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mi>l</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>l</mi> <mi>p</mi> </msubsup></mfenced><mo>=</mo><mover accent="true"><mi>f</mi> <mo>&#732;</mo></mover><mrow><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></math></div>
<p>Finally, we can prove that we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mi>i</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mo>,</mo><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup><mrow><mspace width="0.166667em"></mspace><mi>z</mi><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>l</mi></mrow></math></span>, (<a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>) and:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msub><mi>U</mi> <mn>1</mn> </msub></mtd><mtd><mo>=</mo></mtd><mtd><mrow><msub><mi>&#916;</mi> <mn>1</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mi>p</mi> </msubsup><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mi>p</mi> </msubsup><mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mrow><mo>...</mo><mspace width="0.166667em"></mspace><msub><mi>&#916;</mi> <mi>l</mi> </msub><mfenced separators="" open="(" close=")"><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mrow><mi>l</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><msub><mi>c</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>i</mi> <mi>p</mi> </msubsup></mfenced><mrow><mo>,</mo><mo>(</mo></mrow><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8211;</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>c</mi> <mi>l</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mi>l</mi> <mi>p</mi> </msubsup></mfenced><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>.</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">The previous computations then show that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.</p>
<p>We can now state the main result.</p>
<div class="theorem-theorem"><p><a><b id="uid115">Theorem 8 (<a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a row vector which admits a right-inverse over the ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. Then, for every <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>a</mi><mo>&#8712;</mo><mi>k</mi></mrow></math></span>, there exists a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.277778em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>,</mo><mi>a</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
</div>
<p>We consider a row vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> admitting a right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>g</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span>. Applying inductively Theorem <a href="#uid115">8</a> to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> for the values <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8712;</mo><mi>k</mi></mrow></math></span>, we then obtain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>U</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mspace width="-8.53581pt"></mspace><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi></mrow> </msub><mo>,</mo><msub><mi>a</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow> </msub><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>,</mo><msub><mi>a</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mi>i</mi></mrow> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>,</mo><mspace width="0.277778em"></mspace><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>n</mi><mo>&#8211;</mo><mn>2</mn><mo>.</mo></mrow></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">Hence, we get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mo>...</mo><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mrow><mo>)</mo><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> and we have simplified Problem <a href="#uid80">2</a> to the case of a row vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> over a principal ideal domain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> which admits a right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>g</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. Using the first result of Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a>, we can find a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mi>n</mi> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mi>n</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>...</mo><mspace width="0.166667em"></mspace><mn>0</mn><mo>)</mo><mo>&#8660;</mo></mrow><msubsup><mi>U</mi> <mi>n</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>=</mo></mrow><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mo>&#9734;</mo></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Hence, Problem <a href="#uid80">2</a> is then solved if we take <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>=</mo><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mo>...</mo><msub><mi>U</mi> <mi>n</mi> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>. We also note that it is generally simpler to take the particular values <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>a</mi> <mn>2</mn> </msub><mo>=</mo><mo>...</mo><mo>=</mo><msub><mi>a</mi> <mi>n</mi> </msub><mo>=</mo><mn>0</mn></mrow></math></span>.</p>
<p>Now, let us find a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mo>&#8242;</mo> </msup></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>U</mi> <mo>&#8242;</mo> </msup><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>a</mi> <mn>1</mn> </msub><mo>&#8712;</mo><mi>k</mi></mrow></math></span>. Let us define by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>U</mi> <mi>n</mi> <mo>&#8242;</mo> </msubsup><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>=</mo></mrow><msub><mi>U</mi> <mi>n</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>U</mi> <mi>n</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mrow><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>. Then, we have:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>U</mi> <mi>n</mi> <mo>&#8242;</mo> </msubsup><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>...</mo><mspace width="0.166667em"></mspace><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mo>&#9734;</mo></mtd></mtr></mtable></mfenced><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">Hence, the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>U</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msub><mi>U</mi> <mn>1</mn> </msub><mo>...</mo><msub><mi>U</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mspace width="0.166667em"></mspace><msubsup><mi>U</mi> <mi>n</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> satisfies:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>f</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>U</mi> <mo>&#8242;</mo> </msup><mrow><mo>=</mo><mi>f</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p>Let us illustrate the QS-algorithm on a simple example.</p>
<div class="theorem-example"><p><a><b id="uid116">Example 5</b></a></p>

<p><i>Let us consider the commutative polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and the row vector
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn><mspace width="1.em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>1</mn><mspace width="1.em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span>. We can check that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>S</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="1.em"></mspace><mn>0</mn><mspace width="1.em"></mspace><mo>&#8211;</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>/</mo><mn>2</mn><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span> is a right-inverse of <span class="math"><i>R</i></span>, a fact implying that the <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>/</mo><mrow><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is projective, and thus, free by the Quillen-Suslin theorem. Let us compute a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>. As the first component of <span class="math"><i>S</i></span> is 1, we can easily find such a matrix <span class="math"><i>U</i></span> using the heuristic methods explained in Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a>. However, let us illustrate the main algorithm previously described.</i></p>
<i></i><p><i>We first note that <span class="math"><i>R</i></span> contains the normalized component <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>1</mn></mrow></math></span> over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>E</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>E</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. The second step consists in computing certain local solutions. Let us consider the maximal ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> of <span class="math"><i>E</i></span>. Using an effective version of Horrocks´ theorem, we obtain that</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>1</mn> </msub><mo>=</mo><mfrac><mn>1</mn> <msub><mi>d</mi> <mn>1</mn> </msub></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>4</mn></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mrow><mn>4</mn><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>+</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>+</mo><mn>4</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>d</mi> <mn>1</mn> </msub><mo>=</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>+</mo><mn>4</mn><mo>&#8713;</mo><msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub></mrow></math></span>. We can check that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><msub><mi>H</mi> <mn>1</mn> </msub><mo>=</mo><mn>4</mn><mo>/</mo><msub><mi>d</mi> <mn>1</mn> </msub></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>]</mo><mo>)</mo></mrow></mrow></math></span>, and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>H</mi> <mn>1</mn> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>, showing that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mn>1</mn> </msub></math></span> is a local solution.</i></p>
<i></i><p><i>The ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>J</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is strictly contained in <span class="math"><i>E</i></span>. Therefore, we consider another maximal ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">M</mi> <mn>2</mn> </msub></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>J</mi><mo>&#8838;</mo><msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub></mrow></math></span>. For instance, we can take <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>4</mn><mo>)</mo></mrow></mrow></math></span>. Using an effective version of Horrocks´ theorem, we obtain the matrix</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>2</mn> </msub><mo>=</mo><mfrac><mn>1</mn> <msub><mi>d</mi> <mn>2</mn> </msub></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>8</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>+</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>4</mn></mrow></mtd><mtd><mrow><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>+</mo><mn>4</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>d</mi> <mn>2</mn> </msub><mo>=</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mo>&#8713;</mo></mrow><msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub></mrow></math></span>. We then have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo movablelimits="true" form="prefix">det</mo><msub><mi>H</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>&#8211;</mo><mn>1</mn><mo>/</mo><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mrow><mn>2</mn><mo>)</mo><mo>)</mo></mrow></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>H</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>E</mi> <msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>]</mo><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>H</mi> <mn>2</mn> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. We can check that the ideal <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>d</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mi>E</mi></mrow></mrow></math></span> as we have the Bézout identity <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mo>=</mo><mn>1</mn></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>c</mi> <mn>1</mn> </msub><mo>=</mo><mn>1</mn><mo>/</mo><mn>4</mn></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>&#8211;</mo><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mo>/</mo><mn>16</mn></mrow></mrow></math></span>.</i></p>
<i></i><p><i>The matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mi>i</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is defined by:
</i><small><i></i></small></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mfenced separators="" open="(" close=""><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>/</mo><mn>4</mn><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>&#8211;</mo><mo>(</mo><mn>18</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>3</mn> </msubsup><mrow><mo>/</mo><mn>8</mn><mo>+</mo><mo>(</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>5</mn> </msubsup><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>20</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>8</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mtd></mtr><mtr><mtd><mrow><mspace width="28.45274pt"></mspace><mfenced separators="" open="" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent"><small><i></i></small><i>
We can easily check that we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>&#916;</mi> <mi>i</mi> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> as well as <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mn>1</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>.
Moreover, the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is defined by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mrow><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>4</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>/</mo><mn>8</mn></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>/</mo><mn>4</mn></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>We can easily check that we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>. Defining the matrix</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>1</mn> </msub><mo>=</mo><msub><mi>&#916;</mi> <mn>1</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>&#916;</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>c</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>we then get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mn>1</mn> </msub><mrow><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>)</mo><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="1.em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>/</mo><mn>2</mn><mo>&#8211;</mo><mn>1</mn><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</i></p>
<i></i><p><i>Finally, if we denote by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>U</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>/</mo><mn>2</mn><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>then, the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow></math></span> is then equivalent to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>, i.e., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>U</mi> <mn>2</mn> </msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. Hence, if we define the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>=</mo><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, i.e.,
</i><small><i></i></small></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mrow><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>/</mo><mn>4</mn><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>/</mo><mn>2</mn><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>/</mo><mn>2</mn><mo>+</mo><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>/</mo><mn>4</mn><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>2</mn> <mn>2</mn> </msubsup></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>(</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>4</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><mo>/</mo><mn>8</mn></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>/</mo><mn>16</mn><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>/</mo><mn>8</mn><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>4</mn><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>/</mo><mn>4</mn><mo>+</mo><mn>1</mn><mo>/</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><mrow><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>x</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>x</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><small><i></i></small><i>
we finally obtain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo><mn>1</mn><mspace width="0.277778em"></mspace><mn>0</mn><mspace width="0.277778em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span>.</i></p>
</div>
<p>In the third point of Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a>, we saw that the case of a matrix
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> admitting a right-inverse over <span class="math"><i>D</i></span> can be solved by applying <span class="math"><i>q</i></span> times Theorem <a href="#uid115">8</a> on certain row vectors obtained during the process having smaller and smaller lengths. Hence, we obtain the following corollary.</p>
<div class="theorem-corollary"><p><a><b id="uid117">Corollary 5 (<a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a matrix which admits a right-inverse over <span class="math"><i>D</i></span>. Then, for all <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mo>&#8712;</mo><mi>k</mi></mrow></math></span>, there exists <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.277778em"></mspace><mi>U</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
</div>
<p>We note that as the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> has full row rank over a field <span class="math"><i>k</i></span>, there always exists a right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi><mo>&#8712;</mo><msup><mi>k</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>a</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>V</mi><mo>=</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub></mrow></math></span>. Hence, we obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>U</mi><mspace width="0.166667em"></mspace><mi>V</mi><mo>)</mo><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>, which also solves Problem <a href="#uid79">1</a>. Another possibility is to first obtain a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>W</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>W</mi><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> and then compute a Smith form of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>a</mi> <mn>2</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>a</mi> <mi>n</mi> </msub><mrow><mo>)</mo></mrow></mrow></math></span> as we did for the row vector case.</p>
<div class="theorem-remark"><p><a><b id="uid118">Remark 5</b></a></p>

<p><i>In <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>, it was shown how a certain transformation maps a matrix <span class="math"><i>R</i></span> with entries in a Laurent polynomial ring <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mo>,</mo><msubsup><mi>x</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mo>,</mo><mo>...</mo><mo>,</mo><msubsup><mi>x</mi> <mi>n</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mrow><mo>]</mo></mrow></mrow></math></span>, where <span class="math"><i>k</i></span> is a field, and which admits a right-inverse over <span class="math"><i>D</i></span> to a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mover xmlns:xlink="http://www.w3.org/1999/xlink" accent="true"><mi>R</mi> <mo>¯</mo></mover></math></span> with entries in <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>D</mi> <mo>¯</mo></mover><mrow><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span> and which admits a right-inverse over <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mover xmlns:xlink="http://www.w3.org/1999/xlink" accent="true"><mi>D</mi> <mo>¯</mo></mover></math></span>. Hence, we can use a QS-algorithm to solve Problems <a href="#uid80">2</a> and <a href="#uid79">1</a> over <span class="math"><i>D</i></span>. See <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a> for more details. See also Section <a href="#uid269" title="Laurent polynomial rings &amp; Park´s Algorithm">9.3</a> for explicit examples. Finally, a new algorithm has recently been developed in <a href="#bid39" title="M. Amidou, I. Yengui, `` An algorithm for unimodular completion over Laurent polynomial rings´´, pre...">[1]</a>.</i></p>
</div>

<h3 id="uid119">3.4.4. Computation of bases of free modules</h3>
<p>If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> is a matrix which admits a right-inverse over <span class="math"><i>D</i></span>, then, in Section <a href="#uid73" title="Stably free and free modules">3.2</a>, we showed that a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>{</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>T</mi> <mi>i</mi> </msub><mrow><mo>)</mo></mrow><msub><mo>}</mo> <mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo></mrow> </msub></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#960;</mi><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>&#8594;</mo><mi>M</mi></mrow></math></span> denotes the canonical projection on <span class="math"><i>M</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi> <mi>i</mi> </msub></math></span> is the <span class="math"><i>i</i></span> <sup>th</sup> row of the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>.</mo></mrow></math></div>
<div class="theorem-example"><p><a><b id="uid120">Example 6</b></a></p>

<p><i>Let us consider again Example <a href="#uid116">5</a>. If we consider <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>d</mi> <mi>i</mi> </msub><mo>=</mo><mi>&#8706;</mi><mo>/</mo><mi>&#8706;</mi><msub><mi>x</mi> <mi>i</mi> </msub></mrow></math></span> instead of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>x</mi> <mi>i</mi> </msub></math></span>, namely, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>d</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn><mspace width="1.em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mo>/</mo><mn>2</mn><mo>+</mo><msub><mi>d</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>1</mn><mspace width="1.em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span>, denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>x</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>x</mi> <mn>3</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> and choose <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi><mo>=</mo><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo></mrow><msup><mi mathvariant="double-struck">R</mi> <mn>3</mn> </msup><mrow><mo>)</mo></mrow></mrow></math></span>,
we then obtain that the linear system of PDEs</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo><mo>=</mo><mo>{</mo><mi>y</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>y</mi> <mn>3</mn> </msub><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi mathvariant="script">F</mi> <mn>3</mn> </msup><mrow><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mn>3</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>}</mo></mrow></math></div>
<p class="nofirst noindent"><i>admits the parametrization <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mspace width="0.277778em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mspace width="0.277778em"></mspace><msub><mi>y</mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msup><mo>)</mo> <mi>T</mi> </msup><mrow><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mspace width="0.277778em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, where <span class="math"><i>Q</i></span> is the matrix of differential operators formed by the last two columns of the matrix <span class="math"><i>U</i></span> defined in Example <a href="#uid116">5</a> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>z</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span> is any arbitrary element of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi> <mn>2</mn> </msup></math></span>, i.e.:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>=</mo><mrow><mrow><mo>(</mo><mo>&#8211;</mo></mrow><mfrac><mn>9</mn> <mn>4</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mfrac><mn>3</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>y</mi> <mn>2</mn> </msub><mo>=</mo><mrow><mfenced separators="" open="(" close=")"><mfrac><mn>9</mn> <mn>4</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>d</mi> <mn>1</mn> </msub></mfenced><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mfenced separators="" open="(" close=")"><mfrac><mn>3</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>d</mi> <mn>1</mn> </msub></mfenced><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>y</mi> <mn>3</mn> </msub><mo>=</mo><mrow><mfenced separators="" open="(" close=")"><mo>&#8211;</mo><mfrac><mn>27</mn> <mn>16</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>4</mn> </msubsup><mo>+</mo><mfrac><mn>27</mn> <mn>8</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mfrac><mn>9</mn> <mn>4</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>4</mn></mfrac><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mo>+</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac></mfenced><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mfenced separators="" open="(" close=")"><mo>&#8211;</mo><mfrac><mn>3</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>d</mi> <mn>1</mn> </msub></mfenced><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>2</mn> </msub><mo>.</mo></mrow></mrow></mstyle></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Finally, if we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> the matrix formed by the last two rows of the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span>, namely,</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msub><mi>d</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mn>4</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>d</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mfrac><mn>1</mn> <mn>8</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>d</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>d</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mn>4</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>d</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>d</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>d</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>d</mi> <mn>2</mn> </msub></mrow></mstyle></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>we then have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msub><mi>I</mi> <mn>2</mn> </msub></mrow></math></span>, i.e., the parametrization <span class="math"><i>Q</i></span> of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is injective.</i></p>
</div>
<p>Now, if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is a projective <span class="math"><i>D</i></span> which is defined by a non full row rank matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span>, then, using Proposition <a href="#uid63">2</a>, we first compute a full row rank matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> satisfying</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent">and we then apply the previous QS-algorithm to <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> to obtain <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <msup><mi>p</mi> <mo>&#8242;</mo> </msup> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <msup><mi>q</mi> <mo>&#8242;</mo> </msup> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>S</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mrow><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>×</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> be the matrices defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>S</mi> <mo>&#8242;</mo> </msup><mspace width="1.em"></mspace><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace></mrow><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mtd></mtr><mtr><mtd><msup><mi>T</mi> <mo>&#8242;</mo> </msup></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Then, we have the following split exact sequence:</p>
<div class="hc mathdisplay"><a id="uid121"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>p</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>Q</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msup><mi>S</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msup><mi>T</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd></mtr></mtable></math></td><td class="eqno">(15)</td></tr></table></div>
<p>We now need to precisely describe the isomorphism between <span class="math"><i>M</i></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mo>&#8242;</mo> </msup></math></span> in order to get a basis of <span class="math"><i>M</i></span> from one of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mo>&#8242;</mo> </msup></math></span>. In order to do that, we take the same notations as the ones used at the end of Section <a href="#uid62" title="Projective and stably free modules">3.1</a>, namely, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>1</mn> </msub><mo>=</mo><mi>R</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>T</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>T</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>p</mi> <mn>0</mn> </msub><mo>=</mo><mi>p</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>p</mi> <mn>1</mn> </msub><mo>=</mo><mi>q</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span>. We first easily check that we have the following commutative exact diagram</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>1</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8593;</mo><mo>.</mo><mi>X</mi></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mo>.</mo><msub><mi>I</mi> <msub><mi>p</mi> <mn>0</mn> </msub> </msub></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mi>i</mi><msub><mi>d</mi> <mi>M</mi> </msub></mrow></mtd></mtr><mtr><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mn>1</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>X</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>I</mi> <mi>q</mi> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>. Moreover, we also have the commutative exact diagram</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mn>1</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8593;</mo><mo>.</mo><mi>Z</mi></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mo>.</mo><mi>Y</mi></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mi>&#963;</mi></mrow></mtd></mtr><mtr><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover></mtd><mtd><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>Y</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>I</mi> <msub><mi>p</mi> <mn>0</mn> </msub> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>Z</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>I</mi> <msub><mi>p</mi> <mn>1</mn> </msub> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msup><mn>0</mn> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span> and the isomorphism &#963; is defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><msup><mi>m</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><mo>(</mo><mi>&#955;</mi><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>&#955;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mspace width="0.277778em"></mspace><msub><mi>&#955;</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup><mrow><mo>,</mo><mspace width="1.em"></mspace><mi>&#963;</mi><mo>(</mo></mrow><msup><mi>m</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>&#955;</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">Combining the two commutative exact diagrams, we then obtain the following one:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>1</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>1</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8593;</mo><mo>.</mo><mo>(</mo><mi>Z</mi><mspace width="0.166667em"></mspace><mi>X</mi><mo>)</mo></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mo>.</mo><mi>Y</mi></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mi>&#963;</mi></mrow></mtd></mtr><mtr><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>3</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub><mo>+</mo><msubsup><mi>p</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover></mtd><mtd><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">Hence, if we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>{</mo><msub><mi>f</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msub></mrow></math></span> the standard basis of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></math></span>, using (<a href="#uid121">15</a>), we then obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>{</mo><mi>&#963;</mi><mo>(</mo></mrow><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><mo>(</mo></mrow><msub><mi>f</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>)</mo><mo>=</mo><mi>&#960;</mi><mo>(</mo></mrow><msub><mi>f</mi> <mi>i</mi> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>Y</mi><mo>)</mo><mo>)</mo></mrow><msub><mo>}</mo> <mrow><mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msub></mrow></math></span> is a basis of <span class="math"><i>M</i></span>, i.e., a basis of <span class="math"><i>M</i></span> is defined by taking the residue classes of the rows of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>Y</mi><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>×</mo></mrow><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup></mrow></math></span>.</p>
<p>We can check that the <span class="math"><i>D</i></span>-morphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>&#963;</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>:</mo><mi>M</mi><mo>&#8594;</mo><mi>M</mi></mrow></math></span> is defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>m</mi><mo>=</mo><mi>&#960;</mi><mrow><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msub><mi>p</mi> <mn>0</mn> </msub></mrow> </msup><mo>,</mo><mspace width="1.em"></mspace><msup><mi>&#963;</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><mo>(</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>Y</mi> <mi>T</mi> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">Then, using (<a href="#uid121">15</a>), we then obtain the following split exact sequence</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mrow><mo>.</mo><mo>(</mo></mrow><msup><mi>Y</mi> <mi>T</mi> </msup><mspace width="0.166667em"></mspace><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mrow><mn>1</mn><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>S</mi></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mrow><mo>.</mo><mo>(</mo></mrow><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>Y</mi><mo>)</mo></mrow></mrow></mover></mtd><mtd></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> is a <i>generalized inverse</i> of <span class="math"><i>R</i></span>, i.e., <span class="math"><i>S</i></span> satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><mi>R</mi></mrow></math></span> (<a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>). If we denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>T</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><msubsup><mi>T</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>T</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>×</mo><mi>p</mi></mrow></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>T</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>×</mo></mrow><msub><mi>p</mi> <mn>2</mn> </msub></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mrow><mo>(</mo><mo>(</mo></mrow><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mrow><mspace width="1.em"></mspace><mo>(</mo></mrow><msubsup><mi>Q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mrow><mi>p</mi><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi>Q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msub><mi>p</mi> <mn>2</mn> </msub><mrow><mo>×</mo><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mrow></math></span>, we then get</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>Y</mi> <mi>T</mi> </msup><mspace width="0.166667em"></mspace><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>,</mo><mspace width="1.em"></mspace><msup><mi>T</mi> <mo>&#8242;</mo> </msup><mspace width="0.166667em"></mspace><mi>Y</mi><mo>=</mo><msubsup><mi>T</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">i.e., we need to select the first <span class="math"><i>p</i></span> columns of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi> <mo>&#8242;</mo> </msup></math></span> and the first <span class="math"><i>p</i></span> rows of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi> <mo>&#8242;</mo> </msup></math></span>.</p>
<div class="theorem-remark"><p><a><b id="uid122">Remark 6</b></a></p>

<p><i>If the free <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is defined by the finite free resolution (<a href="#uid64">8</a>), where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>1</mn> </msub><mo>=</mo><mi>R</mi></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>p</mi> <mn>0</mn> </msub><mo>=</mo><mi>p</mi></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>p</mi> <mn>1</mn> </msub><mo>=</mo><mi>q</mi></mrow></math></span>, we point out that we only apply once the QS-algorithm to the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mo>&#8242;</mo> </msup></math></span> in order to obtain a basis of <span class="math"><i>M</i></span> contrary to the algorithm developed in <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a> where the QS-algorithm is applied <span class="math"><i>m</i></span> times. Hence, our algorithm is generally more efficient than the one developed in <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>.</i></p>
</div>
<p>If <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is a <span class="math"><i>D</i></span>-module, then applying the functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to the previous split exact sequence, by 2 of Proposition <a href="#uid56">1</a>, we then obtain the following split exact sequence:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup></mtd><mtd><mrow><mo>&#8592;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mi>S</mi><mo>.</mo></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8594;</mo> <mrow><msubsup><mi>T</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>.</mo></mrow></mover></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">The system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> admits the injective parametrization <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup></math></span>, namely:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <mrow><mrow><mo>(</mo></mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow> </msup><mo>,</mo><mspace width="1.em"></mspace><msubsup><mi>T</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>Q</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><msub><mi>I</mi> <mrow><msup><mi>p</mi> <mo>&#8242;</mo> </msup><mo>&#8211;</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msub><mo>.</mo></mrow></math></div>
<div class="theorem-remark"><p><a><b id="uid123">Remark 7</b></a></p>

<p><i>Let us consider <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and let us suppose that the <span class="math"><i>D</i></span>-modules <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>&#8796;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mo>/</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span> are free. We now show how to use the previous results to compute a basis of these free <span class="math"><i>D</i></span>-modules:</i></p>
<ol>
<li id="uid124"><p class="nofirst noindent"><i>A basis of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span> can be obtained as follows: we first compute the first syzygy <span class="math"><i>D</i></span>-module of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span> and we obtain a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>R</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>r</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub></mrow></math></span>. Let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>M</mi> <mn>2</mn> </msub><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8773;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>. Using the method previously described, we can compute a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi> <mn>2</mn> </msub></math></span>. We get <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>Q</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>l</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>T</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>l</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> such that we have the exact split sequence</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mn>2</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>l</mi></mrow> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msub><mi>S</mi> <mn>2</mn> </msub></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msub><mi>T</mi> <mn>2</mn> </msub></mrow></mover></mtd></mtr></mtable></math></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>S</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> denotes a generalized inverse of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mn>2</mn> </msub></math></span>. A basis of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span> is then given by the <span class="math"><i>D</i></span>-linearly independent rows of the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>T</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>l</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>l</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>T</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>.</i></p>
</li>
<li id="uid125"><p class="nofirst noindent"><i>Using the same notations as before, we have <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub></mrow></math></span> and a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span> can then be obtained by computing a basis of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub></mrow></math></span> as it was shown in the previous point.</i></p>
</li>
<li id="uid126"><p class="nofirst noindent"><i>Using again the same notations as in the first point, we get</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mo>/</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>and a basis of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>R</mi><mo>)</mo></mrow></mrow></math></span> can be computed using the general method previously described in this section.</i></p>
</li></ol>
</div>
<p>To finish, all the algorithms presented in this section were implemented in the package <span class="smallcap">QuillenSuslin</span> (<a href="#bid29" title="A. Fabia&#324;ska, QuillenSuslin project: A package for computing bases of free modules over commutative ...">[13]</a>). See the Appendix for more details and examples.</p>

<h1 id="uid127">4. Flat multidimensional linear systems</h1>
<h2 id="uid128">4.1. Computation of flat outputs of flat multidimensional systems</h2>
<p>Our first motivation to study and implement constructive versions of the Quillen-Suslin theorem was the computation of <i>flat outputs</i> and injective parametrizations of <i>flat multidimensional linear systems</i> and, particularly, differential time-delay systems. Let us first recall the main ideas of flat systems and their applications in control theory.</p>
<p>A non-linear ordinary differential control system defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow></mrow></math></span> is said to be <i>flat</i> if there exist some outputs <span class="math"><i>y</i></span> of the form <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>y</mi><mo>=</mo><mi>h</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>u</mi><mo>,</mo></mrow><mover accent="true"><mi>u</mi> <mo>&#729;</mo></mover><mo>,</mo><mo>...</mo><mo>,</mo><msup><mi>u</mi> <mrow><mo>(</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>)</mo></mrow></mrow></math></span> such that we have:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><mrow><mi>x</mi><mo>=</mo><mi>&#981;</mi><mo>(</mo><mi>y</mi><mo>,</mo></mrow><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover><mo>,</mo><mo>...</mo><mo>,</mo><msup><mi>y</mi> <mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow> </msup><mrow><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mrow><mi>u</mi><mo>=</mo><mi>&#966;</mi><mo>(</mo><mi>y</mi><mo>,</mo></mrow><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover><mo>,</mo><mo>...</mo><mo>,</mo><msup><mi>y</mi> <mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent">The outputs <span class="math"><i>y</i></span> is then called <i>flat outputs</i> of the control system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover><mo>=</mo><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow></mrow></math></span>. See <a href="#bid53" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``Flatness and defect of nonlinear systems: introductor...">[16]</a>, <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a> and the references therein for more details and references.
We can prove that the trajectories of a flat system are in a one-to-one correspondence with those of a
controllable linear ordinary differential system having an arbitrary state dimension but the same number of inputs, i.e., with those of a <i>Brunovský canoncial system</i> (<a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>). We say that a flat non-linear system is <i>Lie-Bäcklund equivalent</i> to
a controllable linear ordinary differential system (<a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>). Controllable linear systems form the simplest class of systems studied in control theory and a large literature is developed for the analysis and the synthesis of this class of control systems. This result, as well as the fact that many classes of non-linear control systems commonly used in the literature were proved to be flat, has popularized this class of systems in the control theory community. The motion planning problem was shown to be easily tractable for flat systems and it was illustrated on several examples in the literature (<a href="#bid53" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``Flatness and defect of nonlinear systems: introductor...">[16]</a>, <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>). Finally, the fact that the trajectories of a flat non-linear systems are in a one-to-one correspondence with the ones of a linear controllable system can be used to construct feedback laws which stabilize a flat non-linear system around a given trajectory (tracking problem) (<a href="#bid53" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``Flatness and defect of nonlinear systems: introductor...">[16]</a>, <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>). See also <a href="#bid55" title="J.-F. Pommaret, A. Quadrat, ``A differential operator approach to multidimensional optimal control´´...">[48]</a> for applications to optimal control.</p>
<p>Unfortunately, no general algorithm is known for checking whether or not a non-linear control system is flat and for the computation of flat outputs despite many effort of the mathematical and control theory communities. We refer the reader to <a href="#bid46" title="P. Zervos, Le problème de Monge, Mémorial des sciences mathématiques, fasicule LIII, Gauthier-Villars, 1932.">[67]</a> for a historical account of the main developments of the underlying mathematical problem, the Monge problem, which was studied by Hadamard, Hilbert, Cartan and Goursat.</p>
<p>We illustrate these definitions on the model of a vertical take-off and landing aircraft considered in <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>, namely,</p>
<div class="hc mathdisplay"><a id="uid129"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>x</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>u</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><msub><mi>u</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>z</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>u</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><msub><mi>u</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>&#952;</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>u</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(16)</td></tr></table></div>
<p class="nofirst noindent">where &#949; is a small parameter.
It is proved in <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a> that the smooth solutions of (<a href="#uid129">16</a>) can be parametrized by means of the following non-linear differential operator</p>
<div class="hc mathdisplay"><a id="uid130"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mi>y</mi> <mn>1</mn> </msub></mtd></mtr><mtr><mtd><msub><mi>y</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mo>&#8614;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>x</mi><mo>=</mo><msub><mi>y</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mfrac><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>1</mn> </msub> <msqrt><mrow><mrow><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><msup><mo>)</mo> <mn>2</mn> </msup><mrow><mo>+</mo><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><msup><mo>)</mo> <mn>2</mn> </msup></mrow></msqrt></mfrac><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>z</mi><mo>=</mo><msub><mi>y</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mfrac><mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow> <msqrt><mrow><mrow><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><msup><mo>)</mo> <mn>2</mn> </msup><mrow><mo>+</mo><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><msup><mo>)</mo> <mn>2</mn> </msup></mrow></msqrt></mfrac><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>&#952;</mi><mo>=</mo><mi> arctan </mi><mspace width="0.166667em"></mspace><mfenced open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mfrac><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>1</mn> </msub> <mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mfenced><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></td><td class="eqno">(17)</td></tr></table></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>y</mi> <mn>1</mn> </msub></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>y</mi> <mn>2</mn> </msub></math></span> are two arbitrary smooth functions satisfying the following condition:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>t</mi><mo>&#8712;</mo><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub><mrow><mo>,</mo><mspace width="1.em"></mspace><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msup><mo>)</mo> <mn>2</mn> </msup><mrow><mo>+</mo><mo>(</mo></mrow><msub><mover accent="true"><mi>y</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mn>1</mn><msup><mo>)</mo> <mn>2</mn> </msup><mo>&#8800;</mo><mn>0</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Moreover, the arbitrary functions <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>y</mi> <mn>1</mn> </msub></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>y</mi> <mn>2</mn> </msub></math></span> can be expressed in terms of the system variables as follows:</p>
<div class="hc mathdisplay"><a id="uid131"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>=</mo><mi>x</mi><mo>+</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mn>2</mn> </msub><mo>=</mo><mi>z</mi><mo>+</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(18)</td></tr></table></div>
<p class="nofirst noindent">Hence, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is a flat output of the non-linear system (<a href="#uid129">16</a>) and its knowledge gives a way to generate the trajectories of (<a href="#uid129">16</a>). Finally, the flat ordinary differential system (<a href="#uid129">16</a>) is Lie-Bäcklund equivalent to the Brunovský linear system defined by</p>
<div class="hc mathdisplay"><a id="uid132"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msubsup><mi>y</mi> <mn>1</mn> <mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow> </msubsup><mo>=</mo><msub><mi>v</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>y</mi> <mn>2</mn> <mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow> </msubsup><mo>=</mo><msub><mi>v</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(19)</td></tr></table></div>
<p class="nofirst noindent">under the invertible transformation (<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>=</mo><msub><mi>u</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>&#952;</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>=</mo><msub><mover accent="true"><mi>&#951;</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub></mrow></math></span>):</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mn>1</mn> </msub><mo>=</mo><mi>x</mi><mo>+</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mn>2</mn> </msub><mo>=</mo><mi>z</mi><mo>+</mo><mi>&#949;</mi><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>v</mi> <mn>1</mn> </msub><mo>=</mo><msub><mover accent="true"><mi>&#951;</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mover accent="true"><mi>&#952;</mi> <mo>&#729;</mo></mover><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>u</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>&#952;</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>v</mi> <mn>2</mn> </msub><mo>=</mo><msub><mover accent="true"><mi>&#951;</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mover accent="true"><mi>&#952;</mi> <mo>&#729;</mo></mover><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>u</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo form="prefix">sin</mo><mi>&#952;</mi><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>&#952;</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo form="prefix">cos</mo><mi>&#952;</mi><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p>The study of flat linear ordinary differential time-delay systems has recently been initiated in <a href="#bid56" title="M. Fliess, H. Mounier, ``Controllability and observability of linear delay systems: an algebraic app...">[18]</a>, <a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>. As for non-linear ordinary differential systems, this class of systems shares some interesting mathematical properties which can be used to do motion planning and tracking as shown in <a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a> and the references therein on explicit examples.
However, the theory of flat linear ordinary differential time-delay systems is still in its infancy and some concepts developed for non-linear ordinary differential systems seem to have no counterparts for this second class of systems. In particular, for flat linear differential time-delay systems, we can wonder which kind of linear systems could play a similar role as the one played by the linear controllable systems (or Brunovský systems) for flat non-linear systems. To answer this question, we first need to understand which kind of equivalence plays a similar role for differential time-delay linear systems as the one played by the Lie-Bäcklund equivalence for non-linear differential systems. To our knowledge, these important questions have not be tackled in the literature till now. This section aims at constructively answer these two questions.</p>
<p>As the differential time-delay systems is a particular class of multidimensional systems, we can define the concept of a flat multidimensional linear system in terms of the existence of an injective parametrization of the trajectories of the system (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>).</p>
<div class="theorem-definition"><p><a><b id="uid133">Definition 7</b></a></p>

<p><i>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> a <span class="math"><i>D</i></span>-module. Then, the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is called </i>flat<i> if there exist <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>m</mi></mrow> </msup></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>m</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> satisfying:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><msup><mi mathvariant="script">F</mi> <mi>m</mi> </msup><mo>,</mo><mspace width="1.em"></mspace><mi>T</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msub><mi>I</mi> <mi>m</mi> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>In terms of the module-theoretic/behaviour approach recently developed for multidimensional linear systems (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid10" title="H. K. Pillai, S. Shankar, ``A behavioural approach to control of distributed systems´´, SIAM Journal...">[41]</a>, <a href="#bid42" title="U. Oberst, ``Multidimensional constant linear systems´´, Acta Appl. Math., 20 (1990), 1-175.">[34]</a>, <a href="#bid12" title="J. Wood, ``Modules and behaviours in nD systems theory´´, Multidimensional Systems and Signal Proces...">[65]</a>, <a href="#bid13" title="E. Zerz, Topics in Multidimensional Linear Systems Theory, Lecture Notes in Control and Information ...">[66]</a>), it means that the module <span class="math"><i>M</i></span> intrinsically associated with the multidimensional linear system is free over the commutative polynomial ring <span class="math"><i>D</i></span> of functional operators (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid53" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``Flatness and defect of nonlinear systems: introductor...">[16]</a>, <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a>, <a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>).</p>
<div class="theorem-proposition"><p><a><b id="uid134">Proposition 3 (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>)</b></a></p>


<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> be an injective cogenerator <span class="math"><i>D</i></span>-module. Then, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is a flat system iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free. Moreover, the bases of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> are then in a one-to-one correspondence with flat outputs of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span>.</p>
</div>
<div class="theorem-remark"><p><a><b id="uid135">Remark 8</b></a></p>

<p><i>Using the end of the Section <a href="#uid5" title="A module-theoretic approach to systems theory">2</a>, we obtain that the condition that <span class="math"><i>M</i></span> is a free <span class="math"><i>D</i></span>-module is a sufficient condition for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> to be a flat system.</i></p>
</div>
<p>Using Proposition <a href="#uid134">3</a> and the Quillen-Suslin theorem (see 4 of Theorem <a href="#uid32">2</a>), we then get the following important corollary.</p>
<div class="theorem-corollary"><p><a><b id="uid136">Corollary 6</b></a></p>

<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> be an injective cogenerator <span class="math"><i>D</i></span>-module. Then, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is a flat system iff the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is projective.</p>
</div>
<p>When <span class="math"><i>R</i></span> has a full row rank, then, using Theorem <a href="#uid37">3</a>, a constructive test for flatness of multidimensional linear systems with constant coefficients consists in checking if the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span> do not simultaneously vanish on complex common zeros (<a href="#bid16" title="T. Y. Lam, Serre´s Conjecture, Lecture Notes in Mathematics 635, Springer Verlag, 1978.">[24]</a>, <a href="#bid28" title="D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of n-dimensional elementar...">[62]</a>). This last result can algorithmically be checked by computing a Gröbner or Janet basis of the ideal <span class="math"><i>I</i></span> of <span class="math"><i>D</i></span> generated by the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>q</mi><mo>×</mo><mi>q</mi></mrow></math></span> minors of <span class="math"><i>R</i></span> and check whether or not <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mn>1</mn><mo>&#8712;</mo><mi>I</mi></mrow></math></span>. We can also check whether or not <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>, <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>).</p>
<p>In the general case, using Theorem <a href="#uid37">3</a>, the projectiveness of <span class="math"><i>M</i></span> can constructively be obtained by verifying the vanishing of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msubsup><mi> ext </mi> <mi>D</mi> <mi>i</mi> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, for <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi></mrow></math></span>, where <span class="math"><i>N</i></span> is the transposed <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>N</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. Other possibilities are to compute the so-called <i>global dimension</i> of <span class="math"><i>M</i></span> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>) by means of Proposition <a href="#uid63">2</a> and Corollary <a href="#uid70">2</a> as it was shown in <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, check whether or not <span class="math"><i>R</i></span> admits a generalized inverse <span class="math"><i>S</i></span> over <span class="math"><i>D</i></span>, i.e., check for the existence of a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> satisfying <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>=</mo><mi>R</mi></mrow></math></span> (<a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>) or check some straightforward conditions on the so-called <i>Fitting ideals</i> of <span class="math"><i>M</i></span> as it is explained in <a href="#bid18" title="D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Graduate Texts in Mathematic...">[11]</a>.</p>
<p>However, we point out that, till now, there has been no easy way for obtaining the flat outputs of the system, i.e., the bases of the free <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. Hence, we are led to use constructive versions of the Quillen-Suslin theorem developed in the symbolic algebra community (<a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>, <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>, <a href="#bid25" title="H. Lombardi, I. Yengui, ``Suslin´s algorithms for reduction of unimodular rows´´, Journal of Symboli...">[29]</a>, <a href="#bid26" title="H. Park, C. Woodburn, ``An algorithmic proof of Suslin´s stability theorem for polynomial rings´´, J...">[37]</a>) for computing a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. It was our first main purpose for developing the package <span class="smallcap">QuillenSuslin</span> (<a href="#bid29" title="A. Fabia&#324;ska, QuillenSuslin project: A package for computing bases of free modules over commutative ...">[13]</a>). See the Appendix for more details and examples.</p>
<div class="theorem-example"><p><a><b id="uid137">Example 7</b></a></p>

<p><i>Let us consider the following differential time-delay linear system (<a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>):</i></p>
<div class="hc mathdisplay"><a id="uid138"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mover accent="true"><mi>u</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(20)</td></tr></table></div>
<p class="nofirst noindent"><i>Let us denote by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><mi>&#948;</mi></mfenced></mrow></math></span> the commutative ring of differential time-delay operators with rational coefficients, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mo>(</mo><mi>d</mi><mo>/</mo><mi>d</mi><mi>t</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mi>y</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>(</mo><mi>&#948;</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>)</mo><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>y</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>h</mi><mo>&#8712;</mo><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub></mrow></math></span>.
Let us also denote the matrix of functional operators defining (<a href="#uid138">20</a>) by:</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mn>2</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn></mrow></mstyle></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Using the algorithms developed in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a> and implemented in the package </i><span class="smallcap">OreModules</span><i> (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>), we obtain that <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> defined by</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mstyle xmlns:xlink="http://www.w3.org/1999/xlink" scriptlevel="0" displaystyle="true"><mrow><mi>S</mi><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mstyle></math></div>
<p class="nofirst noindent"><i>a fact proving that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is a projective, and thus, a free <span class="math"><i>D</i></span>-module by the Quillen-Suslin theorem (see 4 of Theorem <a href="#uid32">2</a>).</i></p>
<i></i><p><i>Using a constructive version of the Quillen-Suslin theorem (see also the heuristic methods developed in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid5" title="J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity&quot;, Appl. Algebra Engrg. Comm. Comput., 9 (1...">[44]</a>), we obtain the following split exact sequence of <span class="math"><i>D</i></span>-modules</i></p>
<div class="hc mathdisplay"><a id="uid139"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="" close=""><mtable><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>Q</mi></mrow></mover></mtd><mtd><mrow><mi>D</mi><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>S</mi></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>T</mi></mrow></mover></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(21)</td></tr></table></div>
<p class="nofirst noindent"><i>where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>T</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mn>1</mn><mspace width="1.em"></mspace><mn>0</mn><mspace width="1.em"></mspace><mn>0</mn></mfenced></mrow></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>Q</mi><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>2</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><msup><mi>d</mi> <mn>2</mn> </msup> <mrow><mi>d</mi><msup><mi>t</mi> <mn>2</mn> </msup></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>2</mn></mrow></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mfrac><msup><mi>d</mi> <mn>2</mn> </msup> <mrow><mi>d</mi><msup><mi>t</mi> <mn>2</mn> </msup></mrow></mfrac></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></mstyle></mtd></mtr></mtable></math></span>.</i></p>
<i></i><p><i>Using the split exact sequence (<a href="#uid139">21</a>), we can check that we have</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mo>&#8773;</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>=</mo><mi>D</mi><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>i.e., we find again that <span class="math"><i>M</i></span> is a free <span class="math"><i>D</i></span>-module of rank 1.</i></p>
<i></i><p><i>Now, if <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> is a <span class="math"><i>D</i></span>-module (e.g., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">F</mi><mo>=</mo><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo><mi mathvariant="double-struck">R</mi><mo>)</mo></mrow></mrow></math></span>), by
applying the functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to the split exact sequence (<a href="#uid139">21</a>), we then obtain the following split exact sequence of <span class="math"><i>D</i></span>-modules (see 2 of Proposition <a href="#uid56">1</a>):</i></p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="" close=""><mtable><mtr><mtd><mrow><mn>0</mn><mo>&#8592;</mo></mrow></mtd><mtd><msup><mi mathvariant="script">F</mi> <mn>2</mn> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mn>3</mn> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mi>Q</mi><mo>.</mo></mrow></mover></mtd><mtd><mrow><mi mathvariant="script">F</mi><mo>&#8592;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mi>S</mi><mo>.</mo></mrow></mover></mtd><mtd></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mi>T</mi><mo>.</mo></mrow></mover></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Hence, for any <span class="math"><i>D</i></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>, we get that the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> defined by (<a href="#uid138">20</a>) is parametrized by the following injective parametrization:</i></p>
<div class="hc mathdisplay"><a id="uid140"></a><table width="100%"><tr valign="middle"><td class="hc"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mo>&#8712;</mo><mi mathvariant="script">F</mi><mo>,</mo><mspace width="1.em"></mspace><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mrow><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo></mrow><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo><mo>,</mo></mrow></mrow></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow><mi>u</mi><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mrow><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo><mo>.</mo></mrow></mrow></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></math></td><td class="eqno">(22)</td></tr></table></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>We refer the reader to <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a>, <a href="#bid49" title="A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of multidimensional linear system...">[55]</a> for a constructive algorithm for the computation of bases, and thus, of flat outputs of a class of linear systems defined by partial differential equations with polynomial or rational coefficients. See <a href="#bid48" title="A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from wwwb.math.rwth-aachen.de/OreModules.">[54]</a>, <a href="#bid47" title="A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules over the Weyl algebras´´...">[53]</a> for an implementation of this algorithm in the package <span class="smallcap">Stafford</span> of the library <span class="smallcap">OreModules</span>.</p>
<p>Finally, we say that the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is <i>&#960;-free</i>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#960;</mi><mo>&#8712;</mo><mi>D</mi></mrow></math></span>, if the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mi>&#960;</mi> </msub></math></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>D</mi> <mi>&#960;</mi> </msub><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>M</mi></mrow></math></span> is free, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mi>&#960;</mi> </msub></math></span> denotes the localization</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>D</mi> <mi>&#960;</mi> </msub><mrow><mo>=</mo><mo>{</mo><mi>a</mi><mo>/</mo><mi>b</mi><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mi>a</mi><mo>&#8712;</mo><mi>D</mi><mo>,</mo><mspace width="0.277778em"></mspace><mi>b</mi><mo>=</mo></mrow><msup><mi>&#960;</mi> <mi>i</mi> </msup><mo>,</mo><mspace width="0.277778em"></mspace><mi>i</mi><mo>&#8712;</mo><msub><mi mathvariant="double-struck">Z</mi> <mo>+</mo> </msub><mo>}</mo></mrow></math></div>
<p class="nofirst noindent">of the ring <span class="math"><i>D</i></span> with respect to the multiplicatively closed subset <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>S</mi> <mi>&#960;</mi> </msub><mo>=</mo><mo>{</mo><mn>1</mn><mo>,</mo><mspace width="0.277778em"></mspace><mi>&#960;</mi><mo>,</mo><mspace width="0.277778em"></mspace><msup><mi>&#960;</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.277778em"></mspace><mo>...</mo><mo>}</mo></mrow></math></span> of <span class="math"><i>D</i></span> (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>). By extension, we can define the concept of a &#960;-flat system. See <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>, <a href="#bid41" title="H. Mounier, J. Rudolph, M. Fliess, P. Rouchon, ``Tracking control of a vibrating string with an inte...">[33]</a> for more details. Given a finitely presented <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>, constructive algorithms computing the corresponding polynomials &#960; and basis of the free <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mi>&#960;</mi> </msub></math></span>-module <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>D</mi> <mi>&#960;</mi> </msub><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>M</mi></mrow></math></span> were given in <a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a> and implemented in the <span class="smallcap">OreModules</span> package (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>, <a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>). However, we can also use Remark <a href="#uid118">5</a> to compute the corresponding basis in the case where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#960;</mi><mo>=</mo><msub><mi>x</mi> <mi>i</mi> </msub></mrow></math></span>. We can also follow the simple idea developed in Section <a href="#uid275" title="Example of a &#948;-flat differential time-delay system taken from ">9.4.3</a>.</p>

<h2 id="uid141">4.2. Equivalences of flat multidimensional systems</h2>
<p>Using a QS-algorithm, the purpose of this section is to prove that a flat multidimensional linear system with constant coefficients is algebraically equivalent to a linear controllable 1-D system obtained by setting all but one functional operator to 0 in the system matrix.
In particular, the algebraic equivalence we use is the natural equivalence developed in module theory, namely, two multidimensional linear systems are said to be algebraically equivalent if their canonical associated modules are isomorphic over the underlying commutative polynomial ring of functional operators <span class="math"><i>D</i></span>.
This equivalence is nothing else than the natural substitute to the Lie-Bäcklund equivalence for multidimensional linear systems. In the case of ordinary differential linear systems, we already know that Lie-Bäcklund transformations correspond to isomorphisms of the underlying modules (see e.g. <a href="#bid54" title="M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to equivalence and flatness o...">[17]</a> and the references therein).
Finally, we prove that a flat differential time-delay linear system is algebraically equivalent to the controllable ordinary differential system without delays, namely, the system obtained by setting all the delay amplitudes to 0. This last system plays a similar role as the one played by the Brunovský canoncial form in the non-linear case.</p>
<p>We have the following corollary of Theorem <a href="#uid115">8</a>.</p>
<div class="theorem-corollary"><p><a><b id="uid142">Corollary 7</b></a></p>

<p>Let <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mrow><mi>D</mi><mo>=</mo><mi>k</mi><mo>[</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>]</mo></mrow></mrow></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> be a full row rank and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span> an injective cogenerator <span class="math"><i>D</i></span>-module.
The flat multidimensional system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is then <span class="math"><i>D</i></span>-isomorphic to a controllable 1-D linear system obtained by setting any functional operator to 0. For instance, the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is <span class="math"><i>D</i></span>-isomorphic to the system <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> and the <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mi xmlns:xlink="http://www.w3.org/1999/xlink" mathvariant="script">F</mi></math></span>-solutions of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>x</mi> <mi>n</mi> </msub><mrow><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> are in a one-to-one correspondence with the ones of <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>.</p>
</div>
<div class="proof"><p><b>Proof</b></p><p>Using Proposition <a href="#uid134">3</a>, we obtain that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span> is a free <span class="math"><i>D</i></span>-module.
Using the fact that <span class="math"><i>R</i></span> has full row rank, by Theorem <a href="#uid115">8</a>, there exists a matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> such that <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mover accent="true"><mi>R</mi> <mo>¯</mo></mover></mrow></math></span>, where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>=</mo><mi>R</mi><mo>(</mo></mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. Therefore, we have the following commutative exact diagram</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#960;</mi></mover></mtd><mtd><mi>M</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8741;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8595;</mo><mrow><mrow><mo>.</mo><mi>U</mi></mrow></mrow></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8595;</mo><mrow><mi>f</mi></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mover accent="true"><mi>R</mi> <mo>¯</mo></mover></mrow></mover></mtd><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mi>&#954;</mi></mover></mtd><mtd><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">where <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#954;</mi><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>&#8594;</mo><mi>M</mi></mrow></math></span> denotes the canonical projection onto <span class="math"><i>M</i></span> and the <span class="math"><i>D</i></span>-isomorphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>:</mo><mi>M</mi><mo>&#8594;</mo><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> is defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>m</mi><mo>=</mo><mi>&#960;</mi><mrow><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>,</mo><mspace width="1.em"></mspace><mi>f</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>=</mo><mi>&#954;</mi><mrow><mo>(</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>)</mo></mrow><mo>.</mo></mrow></math></div>
<p>Applying the functor <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi> hom </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>·</mo><mo>,</mo><mi mathvariant="script">F</mi><mo>)</mo></mrow></mrow></math></span> to the previous commutative exact diagram and using the fact that horizontal exact sequences split because <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>&#8773;</mo><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> is a free <span class="math"><i>D</i></span>-module, we then obtain the following commutative exact diagram:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8593;</mo></mtd><mtd></mtd><mtd><mo>&#8593;</mo></mtd><mtd></mtd><mtd><mo>&#8593;</mo></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8592;</mo></mrow></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mi>R</mi><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <msup><mi>&#960;</mi> <mo>&#9734;</mo> </msup></mover></mtd><mtd><mrow><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>&#8592;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8741;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mrow><mrow><mi>U</mi><mo>.</mo></mrow></mrow></mrow></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mrow><msup><mi>f</mi> <mo>&#9734;</mo> </msup></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>&#8592;</mo></mrow></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>q</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mo>.</mo></mrow></mover></mtd><mtd><msup><mi mathvariant="script">F</mi> <mi>p</mi> </msup></mtd><mtd><mover><mo>&#8592;</mo> <msup><mi>&#954;</mi> <mo>&#9734;</mo> </msup></mover></mtd><mtd><mrow><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>.</mo><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>&#8592;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd><mo>&#8593;</mo></mtd><mtd></mtd><mtd><mo>&#8593;</mo></mtd><mtd></mtd><mtd><mo>&#8593;</mo></mtd></mtr><mtr><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">The <span class="math"><i>D</i></span>-isomorphism <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mi>f</mi> <mo>&#9734;</mo> </msup><mo>:</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo></mrow><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>.</mo><mo>)</mo><mo>&#8594;</mo></mrow><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span>
defined by:</p>
<div class="hc mathdisplay"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll" mode="display"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8704;</mo><mspace width="0.277778em"></mspace><mi>&#951;</mi><mo>&#8712;</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><msup><mi>f</mi> <mo>&#9734;</mo> </msup><mrow><mo>(</mo><mi
