<?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>&#951;</mi><mo>)</mo></mrow><mo>=</mo><mi>U</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Hence, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi> <mo>&#9734;</mo> </msup></math></span> induces a one-to-one correspondence between the trajectories 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></mrow><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>.</mo><mo>)</mo></mrow></mrow></math></span> and those 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> 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><mo>(</mo></mrow><msup><mi>f</mi> <mo>&#9734;</mo> </msup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </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>&#950;</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><mo>,</mo><mspace width="1.em"></mspace><mo>(</mo></mrow><msup><mi>f</mi> <mo>&#9734;</mo> </msup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>(</mo><mi>&#950;</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>&#950;</mi><mo>.</mo></mrow></math></div>
</div><p>Using Corollary <a href="#uid70">2</a> and the end of the Section <a href="#uid94" title="A QS-algorithm for commutative polynomial rings">3.4</a>, we can always reduce the case of a non full row rank matrix <span class="math"><i>R</i></span> to the case of a full row rank 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> and then apply Corollary <a href="#uid142">7</a> 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>R</mi> <mo>&#8242;</mo> </msup></math></span>.</p>
<p>Despite the fact that Corollary <a href="#uid142">7</a> is a straightforward consequence of the Quillen-Suslin theorem, its applications to flat multidimensional systems seem to be ignored. In particular, it shows that the Lie-Bäcklund equivalence in the non-linear case needs to be replaced by the isomorphism equivalence in the multidimensional case.
Moreover, the right substitute of the Brunovský linear system in the non-linear case becomes the controllable 1-D linear linear system with constant coefficients obtained by setting all but one functional operator to 0.</p>
<p>Let us illustrate Corollary <a href="#uid142">7</a> on two examples.</p>
<div class="theorem-example"><p><a><b id="uid143">Example 8</b></a></p>

<p><i>Let us consider again the differential time-delay linear system defined by (<a href="#uid138">20</a>). In Example <a href="#uid137">7</a>, we proved that the corresponding <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free. It is well-known 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 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> is not an injective <span class="math"><i>D</i></span>-module but, by Remark <a href="#uid135">8</a>, 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 flat as the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free.
Hence, according to Corollary <a href="#uid142">7</a>, the flat system (<a href="#uid138">20</a>) is algebraically equivalent to the following controllable ordinary differential linear system</i></p>
<div class="hc mathdisplay"><a id="uid144"></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>z</mi> <mo>&#729;</mo></mover> <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>z</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>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>z</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>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>v</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">(23)</td></tr></table></div>
<p class="nofirst noindent"><i>i.e., the system obtained by setting &#948; to 0 in the matrix <span class="math"><i>R</i></span>. Using the constructive QS-algorithm to <span class="math"><i>R</i></span>, after a few computations, we obtain an invertible transformation which bijectively maps the trajectories of (<a href="#uid138">20</a>) to the ones of (<a href="#uid144">23</a>) is defined by:</i></p>
<div class="hc mathdisplay"><a id="uid145"></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 columnalign="left"><mrow><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</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><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mover accent="true"><mi>z</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>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo><mo>)</mo><mo>+</mo></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>z</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>+</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></mfenced><mspace width="-5.69054pt"></mspace><mo>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>y</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>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><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><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>y</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>+</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></math></td><td class="eqno">(24)</td></tr></table></div>
<p><i>Applying again Corollary <a href="#uid142">7</a> to (<a href="#uid144">23</a>), we get that the ordinary differential system (<a href="#uid144">23</a>) is equivalent to the purely algebraic system</i></p>
<div class="hc mathdisplay"><a id="uid146"></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><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>x</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>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mo>&#8211;</mo><mi>w</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(25)</td></tr></table></div>
<p class="nofirst noindent"><i>i.e., the system obtained by setting to &#948; 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>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></mrow></math></span> to 0 in <span class="math"><i>R</i></span>. Applying a QS-algorithm to <span class="math"><i>R</i></span>,we obtain that a transformation which bijectively maps the trajectories of (<a href="#uid144">23</a>) to the ones of (<a href="#uid146">25</a>) is defined by:</i></p>
<div class="hc mathdisplay"><a id="uid147"></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 columnalign="left"><mrow><msub><mi>z</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>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><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></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>w</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</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>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced><mo>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</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>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>w</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>z</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>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></math></td><td class="eqno">(26)</td></tr></table></div>
<p class="nofirst noindent"><i>Combining (<a href="#uid145">24</a>) and (<a href="#uid147">26</a>), we finally obtain a one-to-one correspondence between the solutions of (<a href="#uid138">20</a>) and (<a href="#uid146">25</a>).</i></p>
<i></i><p><i>We note that the solutions of (<a href="#uid138">20</a>) (resp., (<a href="#uid144">23</a>)) are parametrized by means of (<a href="#uid145">24</a>) (resp., (<a href="#uid147">26</a>)), 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> <mn>1</mn> </msub></math></span>, <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> <mn>2</mn> </msub></math></span> and <span class="math"><i>v</i></span> (resp., <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> <mn>1</mn> </msub></math></span>, <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> <mn>2</mn> </msub></math></span> and <span class="math"><i>w</i></span>) are not arbitrary functions as they must satisfy (<a href="#uid144">23</a>) (resp., (<a href="#uid146">25</a>)). However, solving the algebraic system (<a href="#uid146">25</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>x</mi> <mn>2</mn> </msub><mo>=</mo><mo>&#8211;</mo><msub><mi>x</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"><mi>w</mi><mo>=</mo><mn>0</mn></mrow></math></span>. Substituting these values in (<a href="#uid147">26</a>) and the result into (<a href="#uid145">24</a>), we find that an injective parametrization of (<a href="#uid138">20</a>) is defined by (<a href="#uid140">22</a>).</i></p>
<i></i><p><i>Finally, we can check that an injective parametrization of (<a href="#uid144">23</a>) is obtained by setting <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#948;</mi><mo>=</mo><mn>0</mn></mrow></math></span> in the matrix of operators defining (<a href="#uid140">22</a>), 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"><mo>&#8704;</mo><mspace width="0.166667em"></mspace><mi>&#968;</mi><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>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>&#968;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo></mrow><mover accent="true"><mi>&#968;</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#968;</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mover accent="true"><mi>&#968;</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>Similarly, if we set &#948; 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>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></mrow></math></span> to 0 in the matrix of operators defining (<a href="#uid140">22</a>), we obtain the following injective parametrization of (<a href="#uid146">25</a>):</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.166667em"></mspace><mi>&#966;</mi><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>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>&#966;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mi>&#966;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>w</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>These results can be obtained 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"><mrow><mo>(</mo><mi>D</mi><mo>/</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>)</mo><mo>)</mo></mrow><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mo>·</mo></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"><mrow><mo>(</mo><mi>D</mi><mo>/</mo></mrow><mfenced separators="" open="(" close=")"><mi>D</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>D</mi><mspace width="0.166667em"></mspace><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mfenced><mrow><mo>)</mo></mrow><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mo>·</mo></mrow></math></span>) to the split exact sequence (<a href="#uid139">21</a>) to get the corresponding split exact sequence 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>D</mi><mo>/</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>)</mo></mrow></math></span>-modules (resp., <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><mfenced separators="" open="(" close=")"><mi>D</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>D</mi><mspace width="0.166667em"></mspace><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mfenced></mrow></math></span>-modules) (<a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>).</i></p>
</div>
<p>We consider another time-delay system appearing in the literature of control theory.</p>
<div class="theorem-example"><p><a><b id="uid148">Example 9</b></a></p>

<p><i>Let us consider the differential time-delay system of neutral type studied in <a href="#bid57" title="H. Logemann, ``On the transfer matrix of a neutral system: characterizations of exponential stabilit...">[28]</a>, where <span class="math"><i>a</i></span> denotes a real constant:</i></p>
<div class="hc mathdisplay"><a id="uid149"></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>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>)</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><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi><mspace width="0.166667em"></mspace><msub><mi>x</mi> <mn>2</mn> </msub><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">(27)</td></tr></table></div>
<p class="nofirst noindent"><i>We 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"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow><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 system matrix of (<a href="#uid149">27</a>) 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>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>+</mo><mn>1</mn></mrow></mstyle></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><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>+</mo><mi>a</mi></mrow></mstyle></mtd><mtd><mn>0</mn></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>and 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><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>. <span class="math"><i>R</i></span> admits a right-inverse 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>S</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><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>a fact which proves that <span class="math"><i>M</i></span> is a projective, and thus, a free <span class="math"><i>D</i></span>-module by the Quillen-Suslin theorem. Even 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 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> is injective, by Remark <a href="#uid135">8</a>, the fact that <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free 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.
By Corollary <a href="#uid142">7</a>, (<a href="#uid149">27</a>) is equivalent to the following ordinary differential system</i></p>
<div class="hc mathdisplay"><a id="uid150"></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>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><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">(28)</td></tr></table></div>
<p class="nofirst noindent"><i>i.e., the system obtained by setting &#948; to 0 in the matrix <span class="math"><i>R</i></span>, under the corresponding invertible transformations:</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 columnalign="left"><mrow><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>z</mi> <mo>¨</mo></mover> <mn>2</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>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr></mtable></mfenced><mo>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>z</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><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>2</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>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>Hence, the smooth solutions of the differential time-delay system (<a href="#uid149">27</a>) are in one-to-one correspondence with the ones of the ordinary differential system (<a href="#uid150">28</a>).</i></p>
</div>
<p>Using Corollary <a href="#uid117">5</a>, we can also set the different functional operators appearing in the system matrix
of a flat multidimensional linear system to any particular value belonging to <span class="math"><i>k</i></span>. Applying this result to the class of flat differential time-delay linear systems, we show that a flat differential time-delay linear system is equivalent to the controllable ordinary differential linear system obtained by setting all the time-delay amplitudes to 0, i.e., to the corresponding ordinary differential system without delays.</p>
<div class="theorem-corollary"><p><a><b id="uid151">Corollary 8</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>D</mi><mo>=</mo><mi>k</mi><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#948;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#948;</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mfenced></mrow></math></span> be the ring of differential incommensurable time-delay operators, namely, the amplitudes <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> <mi>i</mi> </msub><mo>&#8712;</mo><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub></mrow></math></span> of the time-delay operator</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>(</mo></mrow><msub><mi>&#948;</mi> <mi>i</mi> </msub><mrow><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></mrow><msub><mi>h</mi> <mi>i</mi> </msub><mrow><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent">are such that 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="double-struck">Q</mi></math></span>-vector space generated by the positive real numbers <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><mo>...</mo><mo>,</mo><msub><mi>h</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow></math></span> is <span class="math"><i>n</i></span>-dimensional. 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> which admits a right-inverse over <span class="math"><i>D</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> an injective cogenerator <span class="math"><i>D</i></span>-module. Then, the time-invariant flat differential time-delay linear 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></mrow><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#948;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#948;</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mfenced><mrow><mo>.</mo><mo>)</mo></mrow></mrow></math></span>
is <span class="math"><i>D</i></span>-isomorphic to the controllable ordinary differential linear 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></mrow><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><mn>0</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>0</mn></mfenced><mrow><mo>.</mo><mo>)</mo></mrow></mrow></math></span> obtained by setting
the amplitudes of all the delays to 0, i.e., it is equivalent to the linear system without delays. In particular, 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></mrow><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#948;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#948;</mi> <mrow><mi>n</mi><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mfenced><mrow><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is 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></mrow><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><mn>0</mn><mo>,</mo><mo>...</mo><mo>,</mo><mn>0</mn></mfenced><mrow><mo>.</mo><mo>)</mo></mrow></mrow></math></span>.</p>
</div>
<p>Let us illustrate Corollary <a href="#uid151">8</a> on two examples.</p>
<div class="theorem-example"><p><a><b id="uid152">Example 10</b></a></p>

<p><i>Let us consider again the flat differential time-delay linear system defined by (<a href="#uid138">20</a>). Applying Corollary <a href="#uid151">8</a> on (<a href="#uid138">20</a>), we obtain that (<a href="#uid138">20</a>) is equivalent to the ordinary differential linear system obtained by substituting <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>=</mo><mn>0</mn></mrow></math></span> into (<a href="#uid138">20</a>), i.e., by setting <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#948;</mi><mo>=</mo><mn>1</mn></mrow></math></span> in the matrix <span class="math"><i>R</i></span> defined in Example <a href="#uid137">7</a>, namely:</i></p>
<div class="hc mathdisplay"><a id="uid153"></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>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>z</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>z</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>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>z</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>z</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>v</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>v</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">(29)</td></tr></table></div>
<p class="nofirst noindent"><i>Using a QS-algorithm, we then obtain that the following transformation</i></p>
<div class="hc mathdisplay"><a id="uid154"></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>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>y</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>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></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><mover accent="true"><mi>y</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>+</mo><msub><mi>y</mi> <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><mo>)</mo><mo>+</mo></mrow><msub><mi>y</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></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><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo><mo>)</mo><mo>+</mo><mi>u</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>,</mo></mrow></mrow></mstyle></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(30)</td></tr></table></div>
<p class="nofirst noindent"><i>whose inverse is 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><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</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><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mover accent="true"><mi>z</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>z</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>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow><mo>+</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mover accent="true"><mi>z</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>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo></mrow><mo>+</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>bijectively maps the trajectories of (<a href="#uid138">20</a>) to the ones of (<a href="#uid153">29</a>). An injective parametrization of (<a href="#uid153">29</a>) can then be obtained by taking <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>=</mo><mn>0</mn></mrow></math></span> in (<a href="#uid140">22</a>), 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"><mo>&#8704;</mo><mspace width="0.166667em"></mspace><mi>&#968;</mi><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>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>&#968;</mi><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>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo></mrow><mover accent="true"><mi>&#968;</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mrow><mi>&#968;</mi><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><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo></mrow><mover accent="true"><mi>&#968;</mi> <mo>¨</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mover accent="true"><mi>&#968;</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo><mo>.</mo></mrow></mrow></mstyle></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<div class="theorem-example"><p><a><b id="uid155">Example 11</b></a></p>

<p><i>We consider again the differential time-delay system of neutral type defined by (<a href="#uid149">27</a>). As we have already proved that (<a href="#uid149">27</a>) is a flat system,
by Corollary <a href="#uid151">8</a>, we know that (<a href="#uid149">27</a>) is equivalent to the ordinary differential linear system</i></p>
<div class="hc mathdisplay"><a id="uid156"></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>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>a</mi><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><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">(31)</td></tr></table></div>
<p class="nofirst noindent"><i>obtained by setting <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>=</mo><mn>0</mn></mrow></math></span> in (<a href="#uid149">27</a>) . Using a QS-algorithm, we then obtain that the invertible transformation 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><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>z</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>z</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i></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>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>z</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>&#8211;</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>¨</mo></mover> <mn>2</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>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>bijectively maps the trajectories of (<a href="#uid149">27</a>) to the ones of (<a href="#uid156">31</a>).</i></p>
</div>
<p>In the previous examples, we note that the invertible transformations can easily be computed by hand but it is generally not the case for more complicated examples. Hence, we need to use an implementation of constructive versions of the Quillen-Suslin theorem for computing the invertible transformations and the injective parametrizations of flat multidimensional linear systems.
Such an implementation has recently been done 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>) which, with the library <span class="smallcap">OreModules</span> (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>), allows us to effectively handle these difficult computations.</p>
<p>As for the flat non-linear ordinary differential systems, using the fact that there is a one-to-one correspondence between the trajectories of the flat differential time-delay systems with those of the ordinary differential system without delays, we can use stabilizing controllers of the latter in order to stabilize the former. This approach echoes the Smith predictor method. We illustrate this idea on an explicit example. More general ones can be handled in a similar way or will be studied in a future publication.</p>
<div class="theorem-example"><p><a><b id="uid157">Example 12</b></a></p>

<p><i>The differential time-delay linear system defined by</i></p>
<div class="hc mathdisplay"><a id="uid158"></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"><mover accent="true"><mi>x</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>x</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>=</mo><mi>u</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></math></td><td class="eqno">(32)</td></tr></table></div>
<p class="nofirst noindent"><i>is flat as we have the following injective parametrization of (<a href="#uid158">32</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 columnalign="left"><mrow><mi>x</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>y</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>u</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><mo>+</mo><mi>y</mi><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo></mrow><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>We easily check that (<a href="#uid158">32</a>) is algebraically equivalent to the controllable ordinary differential system obtained by setting <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>=</mo><mn>0</mn></mrow></math></span> in (<a href="#uid158">32</a>), namely,</i></p>
<div class="hc mathdisplay"><a id="uid159"></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"><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>z</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>v</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></math></td><td class="eqno">(33)</td></tr></table></div>
<p class="nofirst noindent"><i>under the following invertible transformation:</i></p>
<div class="hc mathdisplay"><a id="uid160"></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 columnalign="left"><mrow><mi>x</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>z</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>u</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>v</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>&#8211;</mo><mo>(</mo><mi>z</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>&#8211;</mo><mi>z</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo><mo>)</mo><mo>,</mo></mrow></mtd></mtr></mtable></mfenced><mo>&#8660;</mo><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><mi>z</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>x</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>v</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>=</mo><mi>u</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>+</mo><mo>(</mo><mi>x</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>&#8211;</mo><mi>x</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo><mo>)</mo><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></td><td class="eqno">(34)</td></tr></table></div>
<p class="nofirst noindent"><i>The transfer functions of (<a href="#uid158">32</a>) and (<a href="#uid159">33</a>) are 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>p</mi> <mn>1</mn> </msub><mo>=</mo><mfrac><mn>1</mn> <mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mspace width="1.em"></mspace><msub><mi>p</mi> <mn>2</mn> </msub><mo>=</mo><mfrac><mn>1</mn> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Let us show how to use the invertible transformation (<a href="#uid160">34</a>) in order to parametrize all the stabilizing controllers 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>p</mi> <mn>1</mn> </msub></math></span> by means of the ones 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>p</mi> <mn>2</mn> </msub></math></span>.
Let us consider the algebra <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>R</mi><msub><mi>H</mi> <mi>&#8734;</mi> </msub></mrow></math></span> of proper and stable real rational transfer functions and the Hardy algebra <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><msub><mi>H</mi> <mi>&#8734;</mi> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">C</mi> <mo>+</mo> </msub><mrow><mo>)</mo></mrow></mrow></math></span> of bounded analytic functions in the right half-plane <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="double-struck">C</mi> <mo>+</mo> </msub></math></span> (<a href="#bid58" title="R. F. Curtain, H. Zwart, An Introduction to Infinite-Dimensional Linear Systems Theory, Texts in App...">[7]</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="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>). We recall that <span class="math"><i>A</i></span> is a <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>-subalgebra of <span class="math"><i>B</i></span>. 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>p</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi>A</mi></mrow></math></span>, </i>Zames´ parametrization<i> of all stabilizing controllers 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>p</mi> <mn>2</mn> </msub></math></span> has the form (<a href="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>):</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>q</mi><mo>&#8712;</mo><mi>A</mi><mo>,</mo><mspace width="1.em"></mspace><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mi>q</mi> <mrow><mn>1</mn><mo>+</mo><mi>q</mi><mspace width="0.166667em"></mspace><msub><mi>p</mi> <mn>2</mn> </msub></mrow></mfrac><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Now, using the Laplace transform of (<a href="#uid160">34</a>) (<a href="#bid58" title="R. F. Curtain, H. Zwart, An Introduction to Infinite-Dimensional Linear Systems Theory, Texts in App...">[7]</a>), we get</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><mover accent="true"><mi>z</mi> <mo>^</mo></mover><mo>=</mo><mover accent="true"><mi>x</mi> <mo>^</mo></mover><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>v</mi> <mo>^</mo></mover><mo>=</mo><mover accent="true"><mi>u</mi> <mo>^</mo></mover><mrow><mo>+</mo><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mover accent="true"><mi>x</mi> <mo>^</mo></mover><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>where <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>z</mi> <mo>^</mo></mover></math></span> denotes the Laplace transform of <span class="math"><i>z</i></span> and similarly for <span class="math"><i>x</i></span>, <span class="math"><i>u</i></span> and <span class="math"><i>v</i></span>.
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"><mover accent="true"><mi>v</mi> <mo>^</mo></mover><mo>=</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mover accent="true"><mi>z</mi> <mo>^</mo></mover></mrow></math></span>, we obtain the following stabilizing controllers 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>p</mi> <mn>1</mn> </msub></math></span>:</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>q</mi><mo>&#8712;</mo><mi>A</mi><mo>,</mo><mspace width="1.em"></mspace><mover accent="true"><mi>u</mi> <mo>^</mo></mover><mrow><mo>=</mo><mo>&#8211;</mo><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mover accent="true"><mi>x</mi> <mo>^</mo></mover><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Let us check that the controller <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><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>=</mo><mo>&#8211;</mo><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo></mrow></mrow></math></span> internally stabilizes <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>1</mn> </msub></math></span>:</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="left"><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mrow><mn>1</mn><mo>&#8211;</mo><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></mfrac></mstyle></mtd><mtd columnalign="left"><mo>=</mo></mtd><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mrow><mi>s</mi><mo>+</mo><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup></mrow> <mrow><mi>s</mi><mo>+</mo><mn>1</mn><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mrow><mfrac><mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mspace width="0.166667em"></mspace><mfrac><mn>1</mn> <mfenced separators="" open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mstyle></mfenced></mfrac></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mfrac><msub><mi>p</mi> <mn>1</mn> </msub> <mrow><mn>1</mn><mo>&#8211;</mo><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></mfrac></mstyle></mtd><mtd columnalign="left"><mo>=</mo></mtd><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mrow><mi>s</mi><mo>+</mo><mn>1</mn><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mrow><mfrac><mn>1</mn> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mspace width="0.166667em"></mspace><mfrac><mn>1</mn> <mfenced separators="" open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mstyle></mfenced></mfrac></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mn>1</mn><mo>&#8211;</mo><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></mfrac></mstyle></mtd><mtd columnalign="left"><mo>=</mo></mtd><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mrow><mfrac><mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mspace width="0.166667em"></mspace><mfrac><mn>1</mn> <mfenced separators="" open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mstyle></mfenced></mfrac></mrow><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mo>&#8211;</mo><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo></mrow></mrow><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd></mtd><mtd columnalign="left"><mo>=</mo></mtd><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow><mo>&#8211;</mo><mfrac><mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mrow><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mrow><mn>1</mn><mo>&#8211;</mo><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup></mrow> <mfenced separators="" open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mstyle></mfenced></mfrac><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mfenced separators="" open="(" close=")"><mstyle scriptlevel="0" displaystyle="true"><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mstyle></mfenced></mfrac></mfenced><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></math></div>
<p class="nofirst noindent"><i>Then, using the fact that 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>q</mi><mo>&#8712;</mo><mi>A</mi></mrow></math></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"><mfrac><mn>1</mn> <mstyle scriptlevel="0" displaystyle="true"><mrow><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mrow></mstyle></mfrac><mo>,</mo><mspace width="1.em"></mspace><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mstyle scriptlevel="0" displaystyle="true"><mrow><mn>1</mn><mo>&#8211;</mo><mfrac><mrow><msub><mi>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mrow></mstyle></mfrac><mo>&#8712;</mo><mi>A</mi><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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>c</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></math></span> internally stabilizes <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> 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><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo><mo>/</mo><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo><mo>,</mo><mspace width="0.277778em"></mspace><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mo>&#8712;</mo><mi>B</mi><mo>,</mo></mrow></math></span> we obtain</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>q</mi><mo>&#8712;</mo><mi>A</mi><mo>,</mo><mspace width="1.em"></mspace><mfrac><mn>1</mn> <mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mspace width="1.em"></mspace><mfrac><msub><mi>p</mi> <mn>1</mn> </msub> <mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><mspace width="1.em"></mspace><mfrac><mrow><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow> <mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo><mo>)</mo></mrow></mrow></mfrac><mo>&#8712;</mo><mi>B</mi><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"><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>q</mi><mo>)</mo></mrow></mrow></math></span> internally stabilizes <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>1</mn> </msub></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"><mi>q</mi><mo>&#8712;</mo><mi>A</mi></mrow></math></span>. For more details, see <a href="#bid58" title="R. F. Curtain, H. Zwart, An Introduction to Infinite-Dimensional Linear Systems Theory, Texts in App...">[7]</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="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>. Following <a href="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, we can then find the general <span class="math"><i>Q</i></span>-parametrization of all stabilizing controllers 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>p</mi> <mn>1</mn> </msub></math></span>.</i></p>
<i></i><p><i>Taking <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><mn>0</mn></mrow></math></span>, the internal stabilizing controller <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><mrow><mo>(</mo><mn>0</mn><mo>)</mo><mo>=</mo><mo>&#8211;</mo><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow></math></span> 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>p</mi> <mn>1</mn> </msub></math></span>, i.e.,</i></p>
<div class="hc mathdisplay"><a id="uid161"></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><mi>t</mi><mo>)</mo><mo>=</mo><mo>&#8211;</mo><mi>x</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>+</mo><mi>x</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mi>h</mi><mo>)</mo><mo>,</mo></mrow></math></td><td class="eqno">(35)</td></tr></table></div>
<p class="nofirst noindent"><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>L</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub><mrow><mo>)</mo><mo>&#8211;</mo></mrow><msub><mi>L</mi> <mn>2</mn> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub><mrow><mo>)</mo></mrow></mrow></math></span>-stabilizes (<a href="#uid158">32</a>). See <a href="#bid58" title="R. F. Curtain, H. Zwart, An Introduction to Infinite-Dimensional Linear Systems Theory, Texts in App...">[7]</a> for more details. We note that a similar result holds if we consider the </i>Wiener algebra<i> <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 mathvariant="script">A</mi> <mo>^</mo></mover></math></span> (<a href="#bid58" title="R. F. Curtain, H. Zwart, An Introduction to Infinite-Dimensional Linear Systems Theory, Texts in App...">[7]</a>, <a href="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>) instead 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>B</mi><mo>=</mo><msub><mi>H</mi> <mi>&#8734;</mi> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">C</mi> <mo>+</mo> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. Hence, the controller defined by (<a href="#uid161">35</a>) also <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>L</mi> <mi>&#8734;</mi> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub><mrow><mo>)</mo><mo>&#8211;</mo></mrow><msub><mi>L</mi> <mi>&#8734;</mi> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub><mrow><mo>)</mo></mrow></mrow></math></span>-stabilizes (<a href="#uid158">32</a>).</i></p>
<i></i><p><i>Finally, using some results of <a href="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a> and 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"><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow><mo>&#8712;</mo><mi>B</mi></mrow></math></span>, we obtain that <span class="math"><i>p</i></span> admits the following coprime factorization <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>n</mi><mo>/</mo><mi>d</mi></mrow></math></span></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><mrow><mi>n</mi><mo>=</mo><mfrac><mrow><msub><mi>p</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow> <mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mfrac><mn>1</mn> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mrow><mo>&#8712;</mo><mi>B</mi><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mrow><mi>d</mi><mo>=</mo><mfrac><mn>1</mn> <mrow><mrow><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msub><mi>p</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mfrac><mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac></mrow><mo>&#8712;</mo><mi>B</mi><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>as we can easily check that the following Bézout identity holds:</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"><mfrac><mrow><mrow><mo>(</mo><mi>s</mi><mo>+</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><mfrac><mn>1</mn> <mrow><mo>(</mo><mi>s</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mfrac><mo>=</mo><mn>1</mn><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>In particular, the stable controller <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><mrow><mo>(</mo><mn>0</mn><mo>)</mo><mo>=</mo><mo>&#8211;</mo><mo>(</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>e</mi> <mrow><mo>&#8211;</mo><mi>h</mi><mspace width="0.166667em"></mspace><mi>s</mi></mrow> </msup><mrow><mo>)</mo></mrow></mrow></math></span> </i>strongly stabilizes<i> <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>1</mn> </msub></math></span> (<a href="#bid59" title="A. Quadrat, ``On a generalization of the Youla-Ku c &#711;era parametrization. Part I: The fractional ide...">[51]</a>, <a href="#bid51" title="M. Vidyasagar, Control System Synthesis. A Factorization Approach, MIT Press, 1985.">[60]</a>).</i></p>
</div>

<h1 id="uid162">5. Pommaret´s theorem of Lin-Bose´s conjecture</h1>
<p>The purpose of this section is to show how to use a QS-algorithm to constructively solve Pommaret´s theorem of Lin-Bose´s conjecture (<a href="#bid31" title="J.-F. Pommaret, ``Solving Bose conjecture on linear multidimensional systems´´, Proceedings of Europ...">[43]</a>). Let us first recall this conjecture recently developed in the multidimensional systems theory which generalizes Serre´s conjecture (<a href="#bid30" title="Z. Lin, N. K. Bose, ``A generalization of Serre´s conjecture and related issues´´, Linear Algebra an...">[26]</a>). Let us state a new problem.</p>
<div class="theorem-problem"><p><a><b id="uid163">Problem 3</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> be a commutative polynomial ring with coefficients in 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> a full row rank 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>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> the <span class="math"><i>D</i></span>-module finitely presented by <span class="math"><i>R</i></span>. We 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>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a free <span class="math"><i>D</i></span>-module.</i></p>
<i></i><p><i>Does it exist 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><mi>q</mi><mo>×</mo><mi>p</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>M</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>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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></math></span>? If so, compute such 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>R</mi> <mo>&#8242;</mo> </msup></math></span>.</i></p>
</div>
<p>If we can solve Problem <a href="#uid163">3</a>, 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"><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><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">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>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi><mo>&#8838;</mo><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></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"><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> such that:</p>
<div class="hc mathdisplay"><a id="uid164"></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>R</mi><mo>=</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>.</mo></mrow></math></td><td class="eqno">(36)</td></tr></table></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"><mi>r</mi><mo>=</mo><mi>p</mi><mo>!</mo><mo>/</mo><mo>(</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo><mo>!</mo><mspace width="0.166667em"></mspace><mi>q</mi><mo>!</mo><mo>)</mo></mrow></math></span>.
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"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a projective <span class="math"><i>D</i></span>-module implies that there is no common zero in 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 <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><msubsup><mi>m</mi> <mi>i</mi> <mo>&#8242;</mo> </msubsup><msub><mo>}</mo> <mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>r</mi></mrow> </msub></mrow></math></span> 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>R</mi> <mo>&#8242;</mo> </msup></math></span>, i.e., there exists a 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>p</mi> <mi>i</mi> </msub><msub><mo>}</mo> <mrow><mn>1</mn><mo>&#8804;</mo><mi>i</mi><mo>&#8804;</mo><mi>r</mi></mrow> </msub></mrow></math></span> of elements of <span class="math"><i>D</i></span> satisfying the following Bézout identity:</p>
<div class="hc mathdisplay"><a id="uid165"></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"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><msub><mi>p</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>m</mi> <mi>i</mi> <mo>&#8242;</mo> </msubsup><mo>=</mo><mn>1</mn><mo>.</mo></mrow></math></td><td class="eqno">(37)</td></tr></table></div>
<p class="nofirst noindent">Now, using the fact 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>m</mi> <mi>i</mi> </msub><mrow><mo>=</mo><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>m</mi> <mi>i</mi> <mo>&#8242;</mo> </msubsup></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>r</mi></mrow></math></span>, where 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>m</mi> <mi>i</mi> </msub></math></span> denote 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>, we obtain that the following inclusion of ideals of <span class="math"><i>D</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"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mrow><mo>&#8838;</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><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> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msubsup><mi>m</mi> <mi>i</mi> <mo>&#8242;</mo> </msubsup></mfenced><mrow><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">Multiplying (<a href="#uid165">37</a>) 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 movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></mrow></math></span>, we 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"><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><msub><mi>p</mi> <mi>i</mi> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>m</mi> <mi>i</mi> <mo>&#8242;</mo> </msubsup><mo>=</mo><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><msub><mi>p</mi> <mi>i</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">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"><mrow><mi>D</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><mo>&#8838;</mo></mrow><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </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"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mrow><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></span>
Hence, 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 <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>r</mi></mrow> </msub></mrow></math></span> is then 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"><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></mrow></math></span>.</p>
<p>Hence, solving Problem <a href="#uid163">3</a> gives us a way to factorize <span class="math"><i>R</i></span> under 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><mo>=</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><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 over <span class="math"><i>D</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"><mo movablelimits="true" form="prefix">det</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></mrow></math></span> is 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>. The question of the possibility to achieve this factorization was first asked 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 solved by Pommaret in <a href="#bid31" title="J.-F. Pommaret, ``Solving Bose conjecture on linear multidimensional systems´´, Proceedings of Europ...">[43]</a>. See also <a href="#bid33" title="M. Wang, D. Feng, ``On Lin-Bose problem´´, Linear Algebra and its Applications, 390 (2004), 279-285.">[63]</a>. It was proved in <a href="#bid31" title="J.-F. Pommaret, ``Solving Bose conjecture on linear multidimensional systems´´, Proceedings of Europ...">[43]</a> that this factorization problem is equivalent to Problem <a href="#uid163">3</a>.
The purpose of this paragraph is to give a general constructive algorithm which solves Problem <a href="#uid163">3</a>, and thus, performs the corresponding factorization. The algorithm has recently been implemented in the package <span class="smallcap">QuillenSuslin</span>. See the Appendix.</p>
<p>Based on the Quillen-Suslin theorem, we first prove that 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>R</mi> <mo>&#8242;</mo> </msup></math></span> satisfying Problem <a href="#uid163">3</a> always exists. We then show how to effectively compute it.</p>
<p>The fact that <span class="math"><i>R</i></span> has full row rank implies that we have the following exact sequence:</p>
<div class="hc mathdisplay"><a id="uid166"></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><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></td><td class="eqno">(38)</td></tr></table></div>
<p class="nofirst noindent">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>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> be the transposed <span class="math"><i>D</i></span>-module of <span class="math"><i>M</i></span> (see Remark <a href="#uid38">1</a>), according to Theorem <a href="#uid37">3</a>, 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>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><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>M</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>p</mi></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><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo></mrow></mrow></math></span>. In particular, 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"><mrow><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>&#8838;</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo></mrow></mrow></math></span>, there then 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>P</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></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><mo>=</mo><mi>P</mi><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>. We 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> for the implementation of the corresponding algorithms in the library <span class="smallcap">OreModules</span> as well as the large library of examples which demonstrates these results.</p>
<p>Then, 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></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8595;</mo><mrow><mi>i</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><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><mrow><mo>&#8595;</mo><mrow><mrow><mo>.</mo><mi>P</mi></mrow></mrow></mrow></mtd><mtd></mtd><mtd><mo>&#8741;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8595;</mo><mrow><mi>&#961;</mi></mrow></mrow></mtd></mtr><mtr><mtd></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><mi>Q</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> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover></mtd><mtd><mrow><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd><mtd></mtd><mtd><mo>&#8595;</mo></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>0</mn></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">As, by hypothesis, 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is projective, using 1 of Proposition <a href="#uid56">1</a>, we obtain that the following exact sequence</p>
<div class="hc mathdisplay"><a id="uid167"></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><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>&#8594;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8594;</mo><mn>0</mn></mrow></math></td><td class="eqno">(39)</td></tr></table></div>
<p class="nofirst noindent">splits and we 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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>&#8773;</mo><mi>M</mi><mo>/</mo><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>&#8853;</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent">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"><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><mi>Q</mi></mrow></math></span> is a projective <span class="math"><i>D</i></span>-module. By the Quillen-Suslin theorem, 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><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> is then a free <span class="math"><i>D</i></span>-module.</p>
<p>Let us compute the rank 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"><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><mi>Q</mi></mrow></math></span>. Applying the exact functor <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><mo>·</mo></mrow></math></span> to the short exact sequence (<a href="#uid167">39</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"><mi>K</mi><mo>=</mo><mi>Q</mi><mo>(</mo><mi>D</mi><mo>)</mo></mrow></math></span> denotes the quotient field 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>), we obtain 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> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>=</mo><mi>p</mi><mo>&#8211;</mo></mrow><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>(</mo><mi>M</mi></mrow><mo>/</mo><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent">See <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details (<i>Euler characteristic</i>). Similarly with the two short exact sequences
(<a href="#uid166">38</a>) and</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>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mover><mo>&#8594;</mo> <mi>i</mi></mover><mi>M</mi><mover><mo>&#8594;</mo> <mi>&#961;</mi></mover><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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"><mi>K</mi><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span> 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>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a torsion <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>), 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"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>)</mo></mrow><mo>=</mo><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Therefore, 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"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>=</mo><mi>p</mi><mo>&#8211;</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi><mo>)</mo><mo>=</mo><mi>q</mi><mo>,</mo></mrow></mrow></math></span> 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"><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><mi>Q</mi></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>q</i></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"><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><mi>Q</mi><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span>. Computing a basis of this free <span class="math"><i>D</i></span>-module, we obtain 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><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> satisfying</p>
<div class="hc mathdisplay"><a id="uid168"></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>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>,</mo></mrow></math></td><td class="eqno">(40)</td></tr></table></div>
<p class="nofirst noindent">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"><mi>M</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>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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></math></span> and we have the following finite free short resolution 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span>:</p>
<div class="hc mathdisplay"><a id="uid169"></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><mi>q</mi></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><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8594;</mo><mn>0</mn><mo>.</mo></mrow></math></td><td class="eqno">(41)</td></tr></table></div>
<p class="nofirst noindent">We note that if <span class="math"><i>Q</i></span> has full row rank, we then 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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mi>Q</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"><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mi>q</mi></mrow></math></span>.</p>
<p>In order to compute 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>R</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> which satisfies (<a href="#uid168">40</a>), we need to 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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><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><mi>Q</mi></mrow></math></span>. Hence, we can use the first point of Remark <a href="#uid123">7</a> to compute a basis 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><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>.</p>
<div class="theorem-algorithm"><p><a><b id="uid170">Algorithm 2</b></a></p>

<ul>
<li id="uid171"><p class="nofirst noindent"><i></i><b>Input:</b><i> 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>, 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"><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>-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> 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>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a free <span class="math"><i>D</i></span>-module.</i></p>
<p><i></i></p>
</li>
<li id="uid172"><p class="nofirst noindent"><i></i><b>Output:</b><i> 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><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></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>/</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>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><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"><i></i></p>
</li></ul>
<ol>
<li id="uid173"><p class="nofirst noindent"><i>Transpose the matrix <span class="math"><i>R</i></span> and define the finitely presented <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><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid174"><p class="nofirst noindent"><i>Compute 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"><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>. 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"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></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>/</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>p</mi></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><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid175"><p class="nofirst noindent"><i>Compute the first syzygy 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>Q</mi><mo>)</mo></mrow></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"><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><mi>Q</mi></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid176"><p class="nofirst noindent"><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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>, then <span class="math"><i>Q</i></span> has full row rank and exit the algorithm with <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>=</mo><mi>Q</mi></mrow></math></span>. Else, 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>Q</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msubsup><mi>q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> a matrix 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>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></math></span>.</i></p>
</li>
<li id="uid177"><p class="nofirst noindent"><i>Compute a basis of the free <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>L</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>In particular, we obtain 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"><mi>B</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></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>L</mi><mo>=</mo><msub><mi>&#960;</mi> <mn>2</mn> </msub><mrow><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>B</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"><msub><mi>&#960;</mi> <mn>2</mn> </msub><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mo>&#8594;</mo><mi>L</mi></mrow></math></span> denotes the canonical projection on <span class="math"><i>L</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid178"><p class="nofirst noindent"><i>Return the 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>=</mo><mi>B</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>.</i></p>
</li></ol>
</div>
<div class="theorem-remark"><p><a><b id="uid179">Remark 9</b></a></p>

<p><i>The computation of a basis of <span class="math"><i>L</i></span> gives 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"><msub><mi>P</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><mi>q</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>B</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mrow></math></span> such that we have the following split exact 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></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mo>&#8593;</mo></mtd></mtr><mtr><mtd><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></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><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <msub><mi>&#960;</mi> <mn>2</mn> </msub></mover></mtd><mtd><mi>L</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd><mo>&#8741;</mo></mtd><mtd></mtd><mtd><mrow><mo>&#8593;</mo><mrow><mi>&#981;</mi></mrow></mrow></mtd></mtr><mtr><mtd></mtd><mtd></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><msub><mi>P</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><mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mover><mo>&#8592;</mo> <mrow><mo>.</mo><mi>B</mi></mrow></mover></mtd><mtd><mo>&#8593;</mo></mtd></mtr><mtr><mtd></mtd><mtd></mtd><mtd></mtd><mtd></mtd><mtd><mn>0</mn></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"><mi>&#981;</mi><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mo>&#8594;</mo><mi>L</mi></mrow></math></span> denotes the corresponding isomorphism.
We can now check that 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>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mi>B</mi><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> has full row rank. 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>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span> be 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>&#955;</mi><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mn>0</mn></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"><mo>(</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>B</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><mn>0</mn></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>&#955;</mi><mspace width="0.166667em"></mspace><mi>B</mi><mo>&#8712;</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>q</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></math></span>, 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"><mi>&#956;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msubsup><mi>q</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"><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>B</mi><mo>=</mo><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></math></span>.
Using 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"><mi>B</mi><mspace width="0.166667em"></mspace><msub><mi>P</mi> <mn>2</mn> </msub><mo>=</mo><msub><mi>I</mi> <mi>q</mi> </msub></mrow></math></span>, we then obtain:</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>&#955;</mi><mo>=</mo><mrow><mo>(</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>B</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><msub><mi>P</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mi>&#956;</mi><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>Q</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>P</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mn>0</mn><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>We illustrate Algorithm <a href="#uid170">2</a> on a simple example.</p>
<div class="theorem-example"><p><a><b id="uid180">Example 13</b></a></p>

<p><i>Let us consider the differential time-delay model of a flexible rod with a force applied on one end developed in <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="uid181"></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><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>1</mn><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><mtr><mtd columnalign="left"><mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow><mo>&#8211;</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><msub><mover accent="true"><mi>y</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(42)</td></tr></table></div>
<p class="nofirst noindent"><i>Let us define 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"><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>
of differential time-delay operators with rational coefficients.
The system matrix of (<a href="#uid181">42</a>) 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"><mi>R</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><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"><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></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></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><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow></mstyle></mtd><mtd><mn>0</mn></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>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>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> be the <span class="math"><i>D</i></span>-module associated with (<a href="#uid181">42</a>) and <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><mn>2</mn></mrow> </msup><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><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. Then, <span class="math"><i>N</i></span> admits the following finite free resolution</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>&#8592;</mo><mi>N</mi><mover><mo>&#8592;</mo> <mi>&#963;</mi></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msup><mi>R</mi> <mi>T</mi> </msup></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>R</mi> <mn>2</mn> <mi>T</mi> </msubsup></mrow></mover><mi>D</mi><mo>&#8592;</mo><mn>0</mn><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"><msubsup><mi>R</mi> <mn>2</mn> <mi>T</mi> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mo>&#8211;</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>1</mn><mspace width="1.em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="1.em"></mspace><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></mfenced></mrow></math></span>. The defects of exactness of the complex</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><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>R</mi></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>R</mi> <mn>2</mn> </msub></mrow></mover><mi>D</mi><mo>&#8594;</mo><mn>0</mn></mrow></math></div>
<p class="nofirst noindent"><i>are then 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>=</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><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>=</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo><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>,</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><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><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Computing the first syzygy 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></mrow><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>, 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"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msub><mi>R</mi> <mn>2</mn> </msub><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><mi>Q</mi></mrow></math></span>, where the matrix <span class="math"><i>Q</i></span> is defined by:</i></p>
<div class="hc mathdisplay"><a id="uid182"></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>Q</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow></mstyle></mtd><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></mrow></mstyle></mtd><mtd><mn>1</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></mrow></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></mrow></mstyle></mtd><mtd><mi>&#948;</mi></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>.</mo></mrow></math></td><td class="eqno">(43)</td></tr></table></div>
<p class="nofirst noindent"><i>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>t</mi><mo>(</mo><mi>M</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><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> and reducing the rows of <span class="math"><i>Q</i></span> with respect 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>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>, we obtain that the only non-trivial torsion element 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"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><mi>m</mi><mo>=</mo><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mo>(</mo></mrow><msup><mi>&#948;</mi> <mn>2</mn> </msup><mrow><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>y</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><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>m</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>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>, <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> 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>3</mn> </msub></math></span> denote the residue classes of 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><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></math></span> in <span class="math"><i>M</i></span>.</i></p>
<i></i><p><i>Following Algorithm <a href="#uid170">2</a>, we compute the first syzygy 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>Q</mi><mo>)</mo></mrow></mrow></math></span> and 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></math></span>, where:</i></p>
<div class="hc mathdisplay"><a id="uid183"></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><mi>Q</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="1.em"></mspace><mo>&#8211;</mo><mi>&#948;</mi><mspace width="1.em"></mspace><mn>1</mn></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>.</mo></mrow></math></td><td class="eqno">(44)</td></tr></table></div>
<p class="nofirst noindent"><i>We now have to 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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>L</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace></mrow><msub><mi>Q</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>. Using a constructive version of the Quillen-Suslin theorem, we obtain the split exact 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><mrow><mn>0</mn><mo>&#8594;</mo></mrow></mtd><mtd><mi>D</mi></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><mn>2</mn></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>P</mi> <mn>2</mn> </msub></mrow></mover></mtd><mtd><mi>D</mi></mtd><mtd><mrow><mo>&#8594;</mo><mn>0</mn></mrow></mtd></mtr><mtr><mtd></mtd><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><mi>B</mi></mrow></mover></mtd></mtr></mtable></math></div>
<p class="nofirst noindent"><i>with the following notations:</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><msub><mi>S</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo><mn>0</mn><mspace width="1.em"></mspace><mn>0</mn><mspace width="1.em"></mspace><mn>1</mn></mrow><msup><mo>)</mo> <mi>T</mi> </msup></mrow><mo>,</mo><mspace width="1.em"></mspace><msub><mi>P</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></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><mi>&#948;</mi></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><mi>B</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Computing <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>=</mo><mi>B</mi><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>, we obtain that the following full row rank 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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow></mstyle></mtd><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></mrow></mstyle></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span>. Finally, we have the factorization <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><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span>, where the <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> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></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"><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></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><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>and 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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><mi>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></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>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></mrow></math></span> is 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"><mn>2</mn><mo>×</mo><mn>2</mn></mrow></math></span> minors of <span class="math"><i>R</i></span> and is the functional operator which annihilates the torsion element <span class="math"><i>m</i></span>.</i></p>
</div>
<p>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"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></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>, i.e., there exists an isomorphism</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>&#968;</mi><mo>:</mo><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">and the exact sequence (<a href="#uid169">41</a>), we then obtain the following exact sequence</p>
<div class="hc mathdisplay"><a id="uid184"></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><mi>q</mi></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><mi>p</mi></mrow> </msup></mtd><mtd><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>P</mi></mrow></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></mtable></math></td><td class="eqno">(45)</td></tr></table></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>P</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> is the matrix defining the 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>&#960;</mi> <mo>&#8242;</mo> </msup><mo>&#8728;</mo><mi>&#968;</mi></mrow></math></span>
in the standard 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>. As the exact sequence (<a href="#uid184">45</a>)
ends with a free <span class="math"><i>D</i></span>-module, by 1 of Proposition <a href="#uid56">1</a>, it splits, i.e., 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>S</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>q</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><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 we have the following Bézout identities:</p>
<div class="hc mathdisplay"><a id="uid185"></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><msup><mi>R</mi> <mo>&#8242;</mo> </msup></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>P</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><msub><mi>I</mi> <mi>p</mi> </msub><mo>,</mo></mrow></math></td><td class="eqno">(46)</td></tr></table></div>
<div class="hc mathdisplay"><a id="uid186"></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>(</mo><mi>S</mi><mspace width="1.em"></mspace><mi>P</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mo>&#8242;</mo> </msup></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></td><td class="eqno">(47)</td></tr></table></div>
<p class="nofirst noindent">Now, 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"><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></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><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent">and using (<a href="#uid185">46</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"><mrow><mo movablelimits="true" form="prefix">det</mo><mo>(</mo><mo>(</mo></mrow><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup><mrow><mo>)</mo><mo>=</mo><mn>1</mn></mrow></mrow></math></span> and:</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 movablelimits="true" form="prefix">det</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mo movablelimits="true" form="prefix">det</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></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><mspace width="0.166667em"></mspace><mo movablelimits="true" form="prefix">det</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mo movablelimits="true" form="prefix">det</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">Finally, using the fact that we have proved 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><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></mrow></math></span> is 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 the matrix <span class="math"><i>R</i></span>, we then have solved the following problem.</p>
<div class="theorem-problem"><p><a><b id="uid187">Problem 4</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 full row rank matrix such 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"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub></mrow></math></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 <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>r</mi></mrow> </msub></mrow></math></span> of the matrix <span class="math"><i>R</i></span> satisfies</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><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>d</mi><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where <span class="math"><i>d</i></span> denotes 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 the matrix <span class="math"><i>R</i></span>.</i></p>
<i></i><p><i>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>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 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 movablelimits="true" form="prefix">det</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mi>d</mi><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>To our knowledge, such a problem was first stated by Bose and Lin in <a href="#bid30" title="Z. Lin, N. K. Bose, ``A generalization of Serre´s conjecture and related issues´´, Linear Algebra an...">[26]</a>. Let us give a constructive algorithm solving Problem <a href="#uid187">4</a>.</p>
<div class="theorem-algorithm"><p><a><b id="uid188">Algorithm 3</b></a></p>

<ul>
<li id="uid189"><p class="nofirst noindent"><i></i><b>Input:</b><i> 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>, 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"><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> such that the ideal 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 <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>r</mi></mrow> </msub></mrow></math></span> of <span class="math"><i>R</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"><msubsup><mo>&#8721;</mo> <mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow> <mi>r</mi> </msubsup><mi>D</mi><mspace width="0.166667em"></mspace><msub><mi>m</mi> <mi>i</mi> </msub><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace><mi>d</mi></mrow></math></span>, where <span class="math"><i>d</i></span> denotes 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>.</i></p>
<p><i></i></p>
</li>
<li id="uid190"><p class="nofirst noindent"><i></i><b>Output:</b><i> 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 <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><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mi>d</mi></mrow></math></span>.</i></p>
</li></ul>
<ol>
<li id="uid191"><p class="nofirst noindent"><i>Transpose the matrix <span class="math"><i>R</i></span> and define the finitely presented <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><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid192"><p class="nofirst noindent"><i>Compute 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"><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>. 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"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></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>/</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>p</mi></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><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid193"><p class="nofirst noindent"><i>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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</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>p</mi></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><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo></mrow></mrow></math></span>.
We obtain 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"><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 <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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><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><mspace width="0.166667em"></mspace><mi>T</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"><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mo>&#8594;</mo><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> denotes the canonical projection on <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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid194"><p class="nofirst noindent"><i>Return 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>U</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>R</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </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"><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mi>d</mi></mrow></math></span>.</i></p>
</li></ol>
</div>
<p>We illustrate Algorithm <a href="#uid188">3</a> on an example.</p>
<div class="theorem-example"><p><a><b id="uid195">Example 14</b></a></p>

<p><i>We consider again the model of a flexible rod defined in (<a href="#uid181">42</a>). In Example <a href="#uid180">13</a>, we have proved 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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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>3</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo></mrow></mrow></math></span>, where the matrix <span class="math"><i>Q</i></span> is defined by (<a href="#uid182">43</a>). Let us 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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span>. 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> admits the following free resolution</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>Q</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><mi>Q</mi></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8594;</mo> <msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup></mover><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8594;</mo><mn>0</mn><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"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>Q</mi> <mn>2</mn> </msub></math></span> is defined by (<a href="#uid183">44</a>). Using the fact 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>Q</mi> <mn>2</mn> </msub></math></span> admits the right-inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>S</mi> <mn>2</mn> </msub></math></span> defined by (<a href="#uid180">13</a>), we obtain the following minimal free resolution 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span></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><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mover accent="true"><mi>Q</mi> <mo>¯</mo></mover></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mo>&#8853;</mo><mn>0</mn></mrow></mover><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8594;</mo><mn>0</mn><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where the full row rank 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>Q</mi> <mo>¯</mo></mover></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"><mover accent="true"><mi>Q</mi> <mo>¯</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msup><mi>Q</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msubsup><mi>S</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>.</i></p>
<i></i><p><i>Applying a constructive version of the Quillen-Suslin theorem to <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>Q</mi> <mo>¯</mo></mover></math></span>, we then find that 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"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is given 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></mrow><msup><mi>&#960;</mi> <mo>&#8242;</mo> </msup><mrow><mo>&#8853;</mo><mn>0</mn><mo>)</mo><mo>(</mo></mrow><mover accent="true"><mi>T</mi> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span>, where <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>T</mi> <mo>¯</mo></mover></math></span> denotes 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"><mover accent="true"><mi>T</mi> <mo>¯</mo></mover><mo>=</mo><mfenced separators="" open="(" close=")"><mn>1</mn><mspace width="1.em"></mspace><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="1.em"></mspace><mn>0</mn><mspace width="1.em"></mspace><mn>0</mn></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>If we denote by <span class="math"><i>T</i></span> the matrix defined by the first three entries of <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>T</mi> <mo>¯</mo></mover></math></span>, we then obtain a square 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>U</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>R</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</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"><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mi>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></mrow></math></span>.</i></p>
</div>
<p>The explicit computation 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"><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> gives 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> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>m</mi></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>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msub><mi>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub><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><mi>Q</mi></mrow></math></span>, i.e., 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>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><mi>Q</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><msub><mi>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>m</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent">A direct way to solve Problem <a href="#uid187">4</a> exists when 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>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub></math></span> admits a left-inverse <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> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>m</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>. Then, 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"><mi>M</mi><mo>/</mo><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>&#8773;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>m</mi></mrow> </msup></mrow></math></span> 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"><msub><mi> rank </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>)</mo></mrow><mo>=</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow></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"><mi>m</mi><mo>=</mo><mi>p</mi><mo>&#8211;</mo><mi>q</mi></mrow></math></span>. 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>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>q</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>q</i></span> implies that 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><mi>q</mi><mo>×</mo><mi>p</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"><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><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span>. Combining this result with the previous exact sequence, we obtain the split 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><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><msub><mi>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub></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">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"><mi>P</mi><mo>=</mo><msub><mi>R</mi> <mrow><mo>&#8211;</mo><mn>1</mn></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"><mi>T</mi><mo>=</mo><msub><mi>S</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msub></mrow></math></span> solve Problem <a href="#uid187">4</a>.</p>
<p>Let us illustrate this last remark on an example.</p>
<div class="theorem-example"><p><a><b id="uid196">Example 15</b></a></p>

<p><i>Let us consider again the model of a flexible rod defined in (<a href="#uid181">42</a>) and let us compute <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>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> such that the determinant 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"><mrow><mo>(</mo></mrow><msup><mi>R</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span> equals <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>d</mi><mi>t</mi></mrow></math></span>. In Example <a href="#uid180">13</a>, we proved that we have the 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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mover><mo>&#8594;</mo> <mrow><mo>.</mo><mi>Q</mi></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>R</mi> <mn>2</mn> </msub></mrow></mover><mi>D</mi><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>R</mi> <mn>2</mn> </msub><mo>=</mo><msup><mfenced separators="" open="(" close=")"><mo>&#8211;</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>1</mn><mspace width="1.em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="1.em"></mspace><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></mfenced> <mi>T</mi> </msup></mrow></math></span>.
<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> admits a left-inverse <span class="math"><i>T</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><mfenced separators="" open="(" close=")"><mn>1</mn><mspace width="1.em"></mspace><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="1.em"></mspace><mn>0</mn></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank 1 as we have the isomorphisms:</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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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>3</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>&#8773;</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8773;</mo><mi>D</mi><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>We finally obtain that 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>U</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mi>R</mi></mtd></mtr><mtr><mtd><mi>T</mi></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><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"><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></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></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><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac></mrow></mstyle></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mn>0</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>U</mi><mo>=</mo><mi>d</mi><mo>/</mo><mi>d</mi><mi>t</mi></mrow></math></span>, which solves Problem <a href="#uid187">4</a>.</i></p>
</div>
<p>To finish, let us show how to handle an example given in <a href="#bid34" title="M. Wang, C. P. Kwong, ``On multivariate polynomial matrix factorizations problems´´, Math. Control S...">[64]</a> by means of Algorithms <a href="#uid170">2</a> and <a href="#uid188">3</a>.</p>
<div class="theorem-example"><p><a><b id="uid197">Example 16</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>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 matrix defined in <a href="#bid34" title="M. Wang, C. P. Kwong, ``On multivariate polynomial matrix factorizations problems´´, Math. Control S...">[64]</a>:</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><mrow><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><mtd><mn>0</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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></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>Let us define 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"><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> 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>N</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><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><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. 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> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we then get</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><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><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>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>M</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><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>M</mi><mo>/</mo><mrow><mi>t</mi><mo>(</mo><mi>M</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>P</mi><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>with the notations:</i></p>
<div class="hc mathdisplay"><a id="uid198"></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>Q</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><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><mtd><mrow><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><mtd><mrow><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><msub><mi>z</mi> <mn>3</mn> </msub></mtd><mtd><mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></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><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><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></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><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><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><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><mi>P</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><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></mtable></mfenced><mo>.</mo></mrow></math></td><td class="eqno">(48)</td></tr></table></div>
<p><i>Reducing the rows of <span class="math"><i>Q</i></span> with respect to the rows of <span class="math"><i>R</i></span>, we obtain that the only torsion element 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"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><mrow><mi>m</mi><mo>=</mo><mo>&#8211;</mo><mo>(</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><mrow><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>y</mi> <mn>1</mn> </msub><mrow><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><mrow><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>y</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><mi>m</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>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>, <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> 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>3</mn> </msub></math></span> denote the residue classes of 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><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup></math></span> in <span class="math"><i>M</i></span>. We 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> for more details concerning the explicit computations.</i></p>
<i></i><p><i>We can easily check that <span class="math"><i>P</i></span> admits the left-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>T</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><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></span> a fact showing 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank 2. 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>U</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>R</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></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>U</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><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><mtd><mn>0</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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></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><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></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><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></math></span>, which solves Problem <a href="#uid187">4</a>.</i></p>
<i></i><p><i>Let us solve Problem <a href="#uid163">3</a>. From the previous result, we know 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank 2. In order to be able to apply a constructive version of the Quillen-Suslin theorem, we first need to compute the first syzygy 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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>. 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub></mrow></math></span>,
where 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>Q</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>4</mn></mrow> </msup></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"><msub><mi>Q</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><msub><mi>z</mi> <mn>1</mn> </msub></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Hence, 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><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>&#8773;</mo><mi>L</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>Q</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.
Applying a constructive version of the Quillen-Suslin theorem to <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> <mn>2</mn> </msub></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"><mi>L</mi><mo>=</mo><msub><mi>&#960;</mi> <mn>2</mn> </msub><mrow><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>B</mi><mo>)</mo></mrow></mrow></math></span>, where the full row rank matrix <span class="math"><i>B</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"><mi>B</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup></mtd><mtd><mn>0</mn></mtd><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><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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>&#960;</mi> <mn>2</mn> </msub><mo>:</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mo>&#8594;</mo><mi>L</mi></mrow></math></span> denotes the canonical projection onto <span class="math"><i>L</i></span>. Hence, we get that the full row rank 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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mi>B</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msubsup><mi>R</mi> <mn>11</mn> <mo>&#8242;</mo> </msubsup></mtd><mtd><msubsup><mi>R</mi> <mn>12</mn> <mo>&#8242;</mo> </msubsup></mtd><mtd><msubsup><mi>R</mi> <mn>13</mn> <mo>&#8242;</mo> </msubsup></mtd></mtr><mtr><mtd><msubsup><mi>R</mi> <mn>21</mn> <mo>&#8242;</mo> </msubsup></mtd><mtd><msubsup><mi>R</mi> <mn>21</mn> <mo>&#8242;</mo> </msubsup></mtd><mtd><msubsup><mi>R</mi> <mn>23</mn> <mo>&#8242;</mo> </msubsup></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>where</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>R</mi> <mn>11</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><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><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>R</mi> <mn>12</mn> <mo>&#8242;</mo> </msubsup><mo>=</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><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><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>R</mi> <mn>13</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>5</mn> </msubsup><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>R</mi> <mn>21</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</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><mrow><mo>+</mo><mn>1</mn><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>R</mi> <mn>21</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>3</mn> </msubsup><mo>+</mo><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><mo>+</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><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>R</mi> <mn>23</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>6</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</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><msubsup><mi>z</mi> <mn>1</mn> <mn>6</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><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><mo>&#8211;</mo><mn>1</mn><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span> and the two independent 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>R</mi> <mo>&#8242;</mo> </msup></math></span> define 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><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>. Finally, 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>R</mi><mo>=</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span>, where 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> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></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"><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><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><mo>&#8211;</mo><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><mo>+</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>3</mn> </msubsup></mrow></mtd><mtd><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>&#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><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><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>3</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><msub><mi>z</mi> <mn>1</mn> </msub></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></math></span>, which solves Problem <a href="#uid163">3</a>.</i></p>
<i></i><p><i>We note that we can use the fact that <span class="math"><i>P</i></span> has a full column rank in order to also solve Problem <a href="#uid163">3</a>. Indeed, we can use a constructive version of the Quillen-Suslin theorem to compute 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow></mrow></math></span>. Indeed, if we transpose the column vector <span class="math"><i>P</i></span>, we then obtain the row vector defined in Example <a href="#uid92">4</a>. Hence, if we take the last two 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>U</mi> <mi>T</mi> </msup></math></span>, where <span class="math"><i>U</i></span> is the unimodular matrix defined in (<a href="#uid93">13</a>), we obtain that the full row rank <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></math></span> defined by</i></p>
<div class="hc mathdisplay"><a id="uid199"></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"><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mn>1</mn><mo>+</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><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><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><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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup></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><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">(49)</td></tr></table></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"><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span> and we obtain the factorization <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><msubsup><mi>R</mi> <mn>2</mn> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span>, where:</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>R</mi> <mn>2</mn> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><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><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></mtr><mtr><mtd><msub><mi>z</mi> <mn>3</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><mo movablelimits="true" form="prefix">det</mo><mspace width="0.166667em"></mspace><msubsup><mi>R</mi> <mn>2</mn> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msubsup><mo>=</mo><msub><mi>z</mi> <mn>3</mn> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>

<h1 id="uid200">6. Computation of (weakly) doubly coprime factorizations of rational transfer matrices</h1>
<p>We now turn to another application of the constructive proofs of the Quillen-Suslin theorem in multidimensional systems theory, namely, the problem of finding (weakly) left-/right-/doubly coprime factorizations of rational transfer matrices over 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>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> with coefficients in a field <span class="math"><i>k</i></span>. The general problem of the existence of (weakly) left-/right-/doubly coprime factorizations for general linear systems was recently studied and solved in <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>.</p>
<p>Let us recall a few definitions.</p>
<div class="theorem-definition"><p><a><b id="uid201">Definition 8 (<a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</a>)</b></a></p>


<p><i>Let <span class="math"><i>D</i></span> be a commutative integral domain, its quotient field</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>K</mi><mo>=</mo><mo>{</mo><mi>n</mi><mo>/</mo><mi>d</mi><mspace width="0.277778em"></mspace><mo>|</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>&#8800;</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>n</mi><mo>&#8712;</mo><mi>D</mi><mo>}</mo><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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>P</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> a transfer matrix.</i></p>
<ol>
<li id="uid202"><p class="nofirst noindent"><i>A </i>fractional representation<i> of <span class="math"><i>P</i></span> is a representation of <span class="math"><i>P</i></span> of the form</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>P</mi><mo>=</mo><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>where</i></p>
<div class="hc mathdisplay"><a id="uid203"></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><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="1.em"></mspace><mo>&#8211;</mo><msub><mi>N</mi> <mi>P</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub></mtd></mtr><mtr><mtd><msub><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo><mo>×</mo><mi>r</mi></mrow> </msup><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(50)</td></tr></table></div>
<p class="nofirst noindent"><i>i.e., the entries of the matrices <span class="math"><i>R</i></span> and <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>&#732;</mo></mover></math></span> belong to the ring <span class="math"><i>D</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid204"><p class="nofirst noindent"><i>A fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> of <span class="math"><i>P</i></span> is called a </i>weakly left-coprime factorization<i> of <span class="math"><i>P</i></span> 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>&#955;</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mo>:</mo><mspace width="0.277778em"></mspace><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mspace width="0.277778em"></mspace><mo>&#8658;</mo><mspace width="0.277778em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid205"><p class="nofirst noindent"><i>A fractional representation <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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is called a </i>weakly right-coprime factorization<i> of <span class="math"><i>P</i></span> 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>&#955;</mi><mo>&#8712;</mo><msup><mi>K</mi> <mi>r</mi> </msup><mo>:</mo><mspace width="0.277778em"></mspace><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mspace width="0.166667em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo><mo>×</mo><mn>1</mn></mrow> </msup><mspace width="0.277778em"></mspace><mo>&#8658;</mo><mspace width="0.277778em"></mspace><mi>&#955;</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>r</mi><mo>×</mo><mn>1</mn></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid206"><p class="nofirst noindent"><i>A fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is called a </i>weakly doubly coprime factorization<i> of <span class="math"><i>P</i></span> 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>P</mi><mo>=</mo><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> is a weakly left-coprime factorization of <span class="math"><i>P</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>P</mi><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is a weakly right-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid207"><p class="nofirst noindent"><i>A fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> of <span class="math"><i>P</i></span> is called a </i>left-coprime factorization<i> of <span class="math"><i>P</i></span> if the matrix <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>, i.e., 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"><mrow><mi>S</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>X</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>Y</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo><mo>×</mo><mi>q</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"><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mo>=</mo><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><mi>X</mi><mo>&#8211;</mo><msub><mi>N</mi> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><mi>Y</mi><mo>=</mo><msub><mi>I</mi> <mi>q</mi> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid208"><p class="nofirst noindent"><i>A fractional representation <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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> of <span class="math"><i>P</i></span> is called a </i>right-coprime factorization<i> of <span class="math"><i>P</i></span> if the 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>&#732;</mo></mover></math></span> admits a left-inverse over <span class="math"><i>D</i></span>, namely, if 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"><mover accent="true"><mi>S</mi> <mo>&#732;</mo></mover><mrow><mo>=</mo><mo>(</mo><mo>&#8211;</mo></mrow><mover accent="true"><mi>Y</mi> <mo>&#732;</mo></mover><mspace width="1.em"></mspace><mover accent="true"><mi>X</mi> <mo>&#732;</mo></mover><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>r</mi><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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"><mover accent="true"><mi>S</mi> <mo>&#732;</mo></mover><mspace width="0.166667em"></mspace><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mo>=</mo><mo>&#8211;</mo><mover accent="true"><mi>Y</mi> <mo>&#732;</mo></mover><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>+</mo><mover accent="true"><mi>X</mi> <mo>&#732;</mo></mover><mspace width="0.166667em"></mspace><msub><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>=</mo><msub><mi>I</mi> <mi>r</mi> </msub><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid209"><p class="nofirst noindent"><i>A fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is called a </i>doubly coprime factorization<i> of <span class="math"><i>P</i></span> 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>P</mi><mo>=</mo><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> is a left-coprime factorization of <span class="math"><i>P</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>P</mi><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is a right-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
</li></ol>
</div>
<p>In the case of 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>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 weakly coprime factorization of a rational transfer matrix is also called a <i>minor left-coprime factorization</i>.</p>
<p>The next definition will play an important role in what follows.</p>
<div class="theorem-definition"><p><a><b id="uid210">Definition 9 (<a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</a>)</b></a></p>


<p><i>Let 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>R</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> have a full row rank. We call </i><span class="math"><i>D</i></span>-closure<i> <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"><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> <mo>¯</mo></mover></math></span> of the <span class="math"><i>D</i></span>-submodule <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> 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> the <span class="math"><i>D</i></span>-module 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"><mover accent="true"><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> <mo>¯</mo></mover><mo>=</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><mo>&#8707;</mo><mspace width="0.277778em"></mspace><mn>0</mn><mo>&#8800;</mo><mi>d</mi><mo>&#8712;</mo><mi>D</mi><mo>:</mo><mspace width="0.277778em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#955;</mi><mo>&#8712;</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><mo>}</mo><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>We have the following characterizations of the closure of a <span class="math"><i>D</i></span>-submodule 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>.</p>
<div class="theorem-proposition"><p><a><b id="uid211">Proposition 4 (<a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</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 full row rank matrix 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><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>. We then have:</p>
<ol>
<li id="uid212"><p class="nofirst noindent"><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"><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> <mo>¯</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msup><mi>K</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mspace width="0.166667em"></mspace><mo>&#8745;</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span>, where <span class="math"><i>K</i></span> denotes the quotient field of <span class="math"><i>D</i></span>.</p>
<p></p>
</li>
<li id="uid213"><p class="nofirst noindent">The following equalities hold:</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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mo>(</mo></mrow><msup><mi>K</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mspace width="0.166667em"></mspace><mo>&#8745;</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>)</mo><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></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>M</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>p</mi></mrow> </msup><mo>/</mo><mrow><mo>(</mo><mo>(</mo></mrow><msup><mi>K</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo><mspace width="0.166667em"></mspace><mo>&#8745;</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
</li></ol>
</div>
<p>The next theorem gives necessary and sufficient conditions for the existence of a (weakly) left-/right-/doubly coprime factorization of a transfer matrix.</p>
<div class="theorem-theorem"><p><a><b id="uid214">Theorem 9 (<a href="#bid32" title="A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis vi...">[50]</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>P</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</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>P</mi><mo>=</mo><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> be a fractional representation of <span class="math"><i>P</i></span>, where the matrices <span class="math"><i>R</i></span> and <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>&#732;</mo></mover></math></span> are defined by (<a href="#uid203">50</a>). Then, we have:</p>
<ol>
<li id="uid215"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a weakly left-coprime factorization iff the <span class="math"><i>D</i></span>-module <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"><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> <mo>¯</mo></mover></math></span> is free of rank <span class="math"><i>q</i></span>.</p>
<p></p>
</li>
<li id="uid216"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a weakly right-coprime factorization iff the <span class="math"><i>D</i></span>-module <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"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow> <mo>¯</mo></mover></math></span> is free of rank <span class="math"><i>r</i></span>.</p>
<p></p>
</li>
<li id="uid217"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a left-coprime factorization iff <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"><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> <mo>¯</mo></mover></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>q</i></span> and 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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><mover accent="true"><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> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span> is stably free of rank <span class="math"><i>r</i></span>.</p>
<p></p>
</li>
<li id="uid218"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a right-coprime factorization iff <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"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow> <mo>¯</mo></mover></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>r</i></span> and 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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><mover accent="true"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span> is stably free of rank <span class="math"><i>q</i></span>.</p>
<p></p>
</li>
<li id="uid219"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a left-coprime factorization iff <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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><mover accent="true"><mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>r</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>q</i></span>.</p>
<p></p>
</li>
<li id="uid220"><p class="nofirst noindent"><span class="math"><i>P</i></span> admits a right-coprime factorization iff <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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><mover accent="true"><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> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span> is a free <span class="math"><i>D</i></span>-module of rank <span class="math"><i>r</i></span>.</p>
</li></ol>
</div>
<p>Testing the freeness of modules is a very difficult issue in algebra. Hence, using
Theorem <a href="#uid214">9</a>, we deduce that it is generally difficult to check whether or not a transfer 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>P</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> admits a (weakly) left-/right-/doubly coprime factorization and if so, to compute them. See <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> for results 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>D</mi><mo>=</mo><msub><mi>H</mi> <mi>&#8734;</mi> </msub><mrow><mo>(</mo></mrow><msub><mi mathvariant="double-struck">C</mi> <mo>+</mo> </msub><mrow><mo>)</mo></mrow></mrow></math></span> or the ring of structural stable multidimensional systems.</p>
<p>However, if we 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>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> 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>K</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> its quotient field, then we can use constructive versions of the Quillen-Suslin theorem in order to effectively compute (weakly) left-/right-/doubly coprime factorizations of a rational transfer matrix. We first note that using Proposition <a href="#uid211">4</a> and a computation of an extension module, we can explicitly compute the closure <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"><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> <mo>¯</mo></mover></math></span> and then test whether the necessary and sufficient conditions given in Theorem <a href="#uid214">9</a> are fulfilled. The next algorithm gives a constructive way to compute the corresponding factorizations.</p>
<div class="theorem-algorithm"><p><a><b id="uid221">Algorithm 4</b></a></p>

<ul>
<li id="uid222"><p class="nofirst noindent"><i></i><b>Input:</b><i> 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>, a
fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> of a transfer 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>P</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> which admits a weakly left-coprime factorization over <span class="math"><i>D</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid223"><p class="nofirst noindent"><i></i><b>Output:</b><i> A weakly left-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
</li></ul>
<ol>
<li id="uid224"><p class="nofirst noindent"><i>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"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="1.em"></mspace><mo>&#8211;</mo><msub><mi>N</mi> <mi>P</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup></mrow></math></span> and the following <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>M</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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"><i></i></p>
</li>
<li id="uid225"><p class="nofirst noindent"><i>Transpose the matrix <span class="math"><i>R</i></span> and define the finitely presented <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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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"><i></i></p>
</li>
<li id="uid226"><p class="nofirst noindent"><i>Compute 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"><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>. 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"><mi>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>q</mi> <mo>&#8242;</mo> </msup><mo>×</mo><mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow></mrow> </msup></mrow></math></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>/</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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid227"><p class="nofirst noindent"><i>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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><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> <mo>¯</mo></mover><mo>=</mo><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><mi>Q</mi></mrow></math></span>.
We obtain 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><mi>q</mi><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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"><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><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid228"><p class="nofirst noindent"><i>Write <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><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <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>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>q</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"><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span>. If <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><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8800;</mo><mn>0</mn></mrow></math></span>, then <span class="math"><i>P</i></span> admits the weakly left-coprime factorization <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>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span>.</i></p>
</li></ol>
</div>
<p>Up to a transposition, weakly right-coprime factorizations can similarly be obtained.</p>
<p>Let us illustrate Algorithm <a href="#uid221">4</a> on an example.</p>
<div class="theorem-example"><p><a><b id="uid229">Example 17</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>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>, <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 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> the quotient field of <span class="math"><i>D</i></span> and the following rational transfer matrix:</i></p>
<div class="hc mathdisplay"><a id="uid230"></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>P</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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></mrow> <mrow><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></mfrac></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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><mo>+</mo><mn>1</mn></mrow> <mrow><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></mfrac></mstyle></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup><mo>.</mo></mrow></math></td><td class="eqno">(51)</td></tr></table></div>
<p class="nofirst noindent"><i>Let us check whether or not <span class="math"><i>P</i></span> admits a weakly left-coprime factorization and if so, let us compute one. We consider the fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> of <span class="math"><i>P</i></span> obtained by cleaning the denominators of <span class="math"><i>P</i></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>D</mi> <mi>P</mi> </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>N</mi> <mi>P</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span> 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><msub><mi>D</mi> <mi>P</mi> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><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><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><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></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>2</mn></mrow> </msup><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>N</mi> <mi>P</mi> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>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"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="1.em"></mspace><mo>&#8211;</mo><msub><mi>N</mi> <mi>P</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> and define the finitely presented <span class="math"><i>D</i></span>-modules:</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>,</mo><mspace width="1.em"></mspace><mi>N</mi><mo>=</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><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><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>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> <mn>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we then obtain</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><mrow><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo><mo>=</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><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>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><mi>M</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><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>,</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>where the matrix <span class="math"><i>Q</i></span> is defined by (<a href="#uid198">48</a>) in Example <a href="#uid197">16</a>. Using the results obtained in Example <a href="#uid197">16</a>, we get that the 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"><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> defined by (<a href="#uid199">49</a>) satisfies <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><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span>. Therefore, if we denote by</i></p>
<div class="hc mathdisplay"><a id="uid231"></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>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mn>1</mn><mo>+</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><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><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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup></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></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><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></mtr><mtr><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>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(52)</td></tr></table></div>
<p class="nofirst noindent"><i><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>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is then a weakly left-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
<i></i><p><i>Finally, by construction, 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>M</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><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>Q</mi><mo>)</mo><mo>=</mo></mrow><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><mspace width="0.166667em"></mspace><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>is torsion-free, and thus, by Theorem <a href="#uid37">3</a>, 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>1</mn> </msubsup><mrow><mo>(</mo></mrow><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mrow><mo>,</mo><mi>D</mi><mo>)</mo><mo>=</mo><mn>0</mn></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"><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mrow><mo>/</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><mo>(</mo></mrow><msubsup><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. Moreover, we can 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"><msubsup><mi> ext </mi> <mi>D</mi> <mn>2</mn> </msubsup><mrow><mo>(</mo></mrow><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mrow><mo>,</mo><mi>D</mi><mo>)</mo><mo>=</mo><mn>0</mn></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"><msubsup><mi> ext </mi> <mi>D</mi> <mn>3</mn> </msubsup><mrow><mo>(</mo></mrow><msup><mi>N</mi> <mo>&#8242;</mo> </msup><mrow><mo>,</mo><mi>D</mi><mo>)</mo><mo>=</mo><mn>0</mn></mrow></mrow></math></span>, 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"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a projective, and thus, a free <span class="math"><i>D</i></span>-module by the Quillen-Suslin theorem. Hence, by 3 of Theorem <a href="#uid214">9</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"><mrow><mi>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is a left-coprime factorization of <span class="math"><i>P</i></span>. We find that the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></math></span> admits the following right-inverse over <span class="math"><i>D</i></span>:</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></mtr><mtr><mtd><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></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Therefore, 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"><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="0.166667em"></mspace><mi>X</mi><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="0.166667em"></mspace><mi>Y</mi><mo>=</mo><msub><mi>I</mi> <mn>2</mn> </msub></mrow></math></span>, where:</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>X</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><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></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><mi>Y</mi><mo>=</mo><mrow><mo>(</mo><mn>0</mn><mspace width="1.em"></mspace><mn>1</mn><mo>)</mo></mrow><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>The next algorithm gives us a way to compute left-coprime factorizations of a transfer matrix. Up to a transposition, right-coprime factorizations can similarly be obtained.</p>
<div class="theorem-algorithm"><p><a><b id="uid232">Algorithm 5</b></a></p>

<ul>
<li id="uid233"><p class="nofirst noindent"><i></i><b>Input:</b><i> 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>, a
fractional representation <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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> of a rational transfer 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>P</mi><mo>&#8712;</mo><msup><mi>K</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> which admits a left-coprime factorization over <span class="math"><i>D</i></span>.</i></p>
<p><i></i></p>
</li>
<li id="uid234"><p class="nofirst noindent"><i></i><b>Output:</b><i> A left-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
</li></ul>
<ol>
<li id="uid235"><p class="nofirst noindent"><i>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"><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span> and define 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"><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid236"><p class="nofirst noindent"><i>Define the finitely presented <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"><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover><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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid237"><p class="nofirst noindent"><i>Compute <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></mrow><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover><mrow><mo>,</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>. 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"><msup><mover accent="true"><mi>Q</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><msup><mi>r</mi> <mo>&#8242;</mo> </msup><mo>×</mo><mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow></mrow> </msup></mrow></math></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"><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mrow><mo>/</mo><mi>t</mi><mo>(</mo></mrow><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mrow><mo>)</mo><mo>=</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>r</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mspace width="0.166667em"></mspace><msup><mover accent="true"><mi>Q</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid238"><p class="nofirst noindent"><i>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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mrow><mo>/</mo><mi>t</mi><mo>(</mo></mrow><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span>.
We obtain a full column rank 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"><msup><mover accent="true"><mi>L</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo><mo>×</mo><mi>q</mi></mrow> </msup><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"><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>q</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"><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>r</mi></mrow> </msup></mrow></math></span>, such that we have the following split 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>&#8592;</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msup><mover accent="true"><mi>L</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mover><mo>&#8592;</mo> <mrow><mo>.</mo><msup><mover accent="true"><mi>Q</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></mrow></mover><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><msup><mi>r</mi> <mo>&#8242;</mo> </msup></mrow> </msup><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</li>
<li id="uid239"><p class="nofirst noindent"><i>Transpose 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"><mover accent="true"><mi>L</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></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"><mover accent="true"><mi>L</mi> <mo>&#732;</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup></mrow></math></span>. If <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><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><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"><mrow><mi>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is a left-coprime factorization of <span class="math"><i>P</i></span>.</i></p>
</li></ol>
</div>
<p>Let us illustrate Algorithm <a href="#uid232">5</a> on an example.</p>
<div class="theorem-example"><p><a><b id="uid240">Example 18</b></a></p>

<p><i>We consider again Example <a href="#uid229">17</a> and the rational transfer matrix <span class="math"><i>P</i></span> defined by (<a href="#uid230">51</a>).
We have the fractional representation <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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> of <span class="math"><i>P</i></span>, where:</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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>2</mn></mrow> </msup><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>=</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><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8712;</mo><mi>D</mi><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Let us 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"><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span> and the <span class="math"><i>D</i></span>-modules:</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"><mover accent="true"><mi>M</mi> <mo>&#732;</mo></mover><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></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><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><mrow><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace></mrow><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover><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><mo>(</mo><mi>q</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>The row vector <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup></math></span> is exactly the one defined in Example <a href="#uid92">4</a>. Hence, using the results obtained in Example <a href="#uid92">4</a>, we obtain that the unimodular matrix <span class="math"><i>U</i></span> defined by (<a href="#uid93">13</a>) satisfies <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msup><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover> <mi>T</mi> </msup><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><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. Hence, selecting the last two columns of <span class="math"><i>U</i></span> and transposing the corresponding matrix, we then find again the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>R</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></math></span> defined by (<a href="#uid199">49</a>).
Hence, using Example <a href="#uid229">17</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"><mrow><mi>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is a left-coprime factorization of <span class="math"><i>P</i></span>, where the matrices <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></math></span> and <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></math></span> are defined by (<a href="#uid231">52</a>).</i></p>
</div>

<h1 id="uid241">7. Decomposition of multidimensional linear systems</h1>
<p>It was recently shown in <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a> that the computation of bases of free modules plays a central role in the <i>decomposition problem</i> of multidimensional linear systems. We shall recall this problem as well as the main important results obtained in <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a>. Let us first recall a few definitions and notations.</p>
<p>We shall 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> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> the non-commutative ring of <span class="math"><i>D</i></span>-endomorphisms of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>, i.e., the ring formed by the <span class="math"><i>D</i></span>-morphisms (namely, the <span class="math"><i>D</i></span>-linear maps) from <span class="math"><i>M</i></span> to <span class="math"><i>M</i></span>. Moreover, we recall that if <span class="math"><i>f</i></span> is a <span class="math"><i>D</i></span>-morphism from a <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> to a <span class="math"><i>D</i></span>-module <span class="math"><i>N</i></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"><mi> coim </mi><mi>f</mi></mrow></math></span> is the <span class="math"><i>D</i></span>-module 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> coim </mi><mspace width="0.166667em"></mspace><mi>f</mi><mo>=</mo><mi>M</mi><mo>/</mo><mo form="prefix">ker</mo><mi>f</mi></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">ker</mo><mi>f</mi><mo>=</mo><mo>{</mo><mi>m</mi><mo>&#8712;</mo><mi>M</mi><mspace width="0.166667em"></mspace><mo>|</mo><mspace width="0.166667em"></mspace><mi>f</mi><mo>(</mo><mi>m</mi><mo>)</mo><mo>=</mo><mn>0</mn><mo>}</mo></mrow></math></span> is the kernel of <span class="math"><i>f</i></span>.</p>
<p>Let <span class="math"><i>M</i></span> be a finitely presented <span class="math"><i>D</i></span>-module, i.e., <span class="math"><i>M</i></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>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>, 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>&#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> the canonical projection. We can easily prove that a <span class="math"><i>D</i></span>-endomorphism <span class="math"><i>f</i></span> of <span class="math"><i>M</i></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"><mi>f</mi><mo>(</mo><mi>m</mi><mo>)</mo><mo>=</mo><mi>&#960;</mi><mo>(</mo><mi>&#955;</mi><mspace width="0.166667em"></mspace><mi>P</mi><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"><mi>P</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mi>p</mi></mrow> </msup></mrow></math></span> is a matrix such 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>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</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>P</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>,
and &#955; is any 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><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </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"><mi>m</mi><mo>=</mo><mi>&#960;</mi><mo>(</mo><mi>&#955;</mi><mo>)</mo></mrow></math></span>. See <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a> for more details and for constructive algorithms which compute the pairs of 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><mi>P</mi><mo>,</mo><mi>Q</mi><mo>)</mo></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>P</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>. These algorithms have been implemented in the package <span class="smallcap">Morphisms</span> (<a href="#bid36" title="T. Cluzeau, A. Quadrat, ``Morphisms: A homological algebra package for factoring and decomposing lin...">[10]</a>) of the library <span class="smallcap">OreModules</span> (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>).</p>
<p>We have following results.</p>
<div class="theorem-theorem"><p><a><b id="uid242">Theorem 10</b></a></p>

<p>(<a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a>) 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>, <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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msub><mi> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><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"><mi>P</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</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>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</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>P</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>. If the <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"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>,</mo><mspace width="1.em"></mspace><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">are free of rank <span class="math"><i>m</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>p</mi><mo>&#8211;</mo><mi>m</mi></mrow></math></span>, <span class="math"><i>l</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>q</mi><mo>&#8211;</mo><mi>l</mi></mrow></math></span>, then there exist matrices <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><msup><mi>D</mi> <mrow><mi>m</mi><mo>×</mo><mi>p</mi></mrow> </msup><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>U</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo><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>V</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>l</mi><mo>×</mo><mi>q</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>V</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mi>l</mi><mo>)</mo><mo>×</mo><mi>q</mi></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"><mtable xmlns:xlink="http://www.w3.org/1999/xlink"><mtr><mtd><mrow><mrow><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>U</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>U</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>V</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>V</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>V</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mi>q</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>,</mo></mrow></mtd></mtr></mtable></math></div>
<p class="nofirst noindent">and</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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mo>=</mo><mi>V</mi><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msub><mi>V</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>W</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><msub><mi>V</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>W</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mrow><msub><mi>V</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>W</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup><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"><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>W</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>W</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"><msub><mi>W</mi> <mn>1</mn> </msub><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"><msub><mi>W</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo></mrow> </msup></mrow></math></span>.</p>
<p>In particular, the full row rank 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>U</mi> <mn>1</mn> </msub></math></span> (resp., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mn>2</mn> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>1</mn> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>2</mn> </msub></math></span>) defines 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>P</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"><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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>Q</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><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow></mrow></math></span>), i.e., 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><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>m</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>l</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mi>l</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>2</mn> </msub><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
</div>
<p>An important point in Theorem <a href="#uid242">10</a> is the computation of bases of the free <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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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>Q</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>Q</mi><mo>)</mo></mrow></mrow></math></span>, which can be solved by means of constructive versions of the Quillen-Suslin theorem and their implementations in computer algebra systems. In order to do that, we use the package <span class="smallcap">QuillenSuslin</span> described in the Appendix.</p>
<p>Let us illustrate Theorem <a href="#uid242">10</a> by means of an explicit example.</p>
<div class="theorem-example"><p><a><b id="uid243">Example 19</b></a></p>

<p><i>Let us consider the system of partial differential equations defined by</i></p>
<div class="hc mathdisplay"><a id="uid244"></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>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mspace width="0.166667em"></mspace><mover accent="true"><mi>A</mi> <mo>&#8594;</mo></mover><mo>+</mo><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><mover accent="true"><mi>&#8711;</mi> <mo>&#8594;</mo></mover><mo>&#8743;</mo><mover accent="true"><mi>&#8711;</mi> <mo>&#8594;</mo></mover><mspace width="0.166667em"></mspace><mover accent="true"><mi>A</mi> <mo>&#8594;</mo></mover><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mover accent="true"><mi>&#8711;</mi> <mo>&#8594;</mo></mover><mspace width="0.166667em"></mspace><mi>V</mi><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math></td><td class="eqno">(53)</td></tr></table></div>
<p class="nofirst noindent"><i>where &#963; and &#956; are two constants.
The previous system corresponds to the equations satisfied by the electromagnetic quadri-potential <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><mover accent="true"><mi>A</mi> <mo>&#8594;</mo></mover><mrow><mo>,</mo><mi>V</mi><mo>)</mo></mrow></mrow></math></span> when it is assumed that the term <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>t</mi> </msub><mspace width="0.166667em"></mspace><mover accent="true"><mi>D</mi> <mo>&#8594;</mo></mover></mrow></math></span> can be neglected in the Maxwell equations. See <a href="#bid60" title="K. Eriksson, D. Estep, P. Hansbo, C. Johnson, Computational Differential Equations, Cambridge Univer...">[8]</a> for more details. It seems that Maxwell was led to introduce the term <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>t</mi> </msub><mspace width="0.166667em"></mspace><mover accent="true"><mi>D</mi> <mo>&#8594;</mo></mover></mrow></math></span> in his famous equations for purely mathematical reasons. See <a href="#bid60" title="K. Eriksson, D. Estep, P. Hansbo, C. Johnson, Computational Differential Equations, Cambridge Univer...">[8]</a> for more details.</i></p>
<i></i><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> <mi>t</mi> </msub><mo>,</mo><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 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>&#8706;</mi> <mi>t</mi> </msub><mo>=</mo><mi>&#8706;</mi><mo>/</mo><mi>&#8706;</mi><mi>t</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>&#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> with rational coefficients, the system matrix of (<a href="#uid244">53</a>) 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>R</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><mrow><mrow><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>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>4</mn></mrow> </msup><mrow><mo>/</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>R</mi><mo>)</mo></mrow></mrow></math></span>.</i></p>
<i></i><p><i>The matrices <span class="math"><i>P</i></span> and <span class="math"><i>Q</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>P</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>4</mn><mo>×</mo><mn>4</mn></mrow> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i></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>Q</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mtd><mtd><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#8706;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>satisfy the relation <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>P</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><mi>R</mi></mrow></math></span>, and thus, define a <span class="math"><i>D</i></span>-endomorphism <span class="math"><i>f</i></span> of <span class="math"><i>M</i></span>. Moreover, 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"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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><mi> coim </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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>Q</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>Q</mi><mo>)</mo></mrow></mrow></math></span> are free <span class="math"><i>D</i></span>-modules of rank 2, 2, 1 and 2. Hence, computing bases of these free <span class="math"><i>D</i></span>-modules by means of a constructive version of the Quillen-Suslin theorem, we obtain:</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 columnalign="left"><mrow><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><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mtd><mtd><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>U</mi> <mn>2</mn> </msub><mo>=</mo><mfrac><mn>1</mn> <mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi></mrow></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><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><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced><mspace width="1.em"></mspace><mfenced separators="" open="{" close=""><mtable><mtr><mtd columnalign="left"><mrow><msub><mi>V</mi> <mn>1</mn> </msub><mo>=</mo><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>V</mi> <mn>2</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>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></div>
<p class="nofirst noindent"><i>Defining <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><msubsup><mi>U</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>U</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>4</mn> </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"><mrow><mi>V</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>V</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>V</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we get that <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><mo>=</mo><mi>V</mi><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></mrow></math></span> is the block-triangular 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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mo>&#8211;</mo><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub></mrow></mstyle></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mrow><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace></mrow><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <mi>&#956;</mi></mfrac><mspace width="0.166667em"></mspace><msub><mi>&#8706;</mi> <mn>3</mn> </msub></mrow></mstyle></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mrow><mi>&#963;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#963;</mi><mspace width="0.166667em"></mspace><mi>&#956;</mi><mspace width="0.166667em"></mspace></mrow><msub><mi>&#8706;</mi> <mi>t</mi> </msub><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msubsup><mi>&#8706;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><msubsup><mi>&#8706;</mi> <mn>3</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i></i></p>
</div>
<p>Now, we recall that a <i>projector</i> <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> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> is a <span class="math"><i>D</i></span>-endomorphism <span class="math"><i>f</i></span> of <span class="math"><i>M</i></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"><msup><mi>f</mi> <mn>2</mn> </msup><mo>=</mo><mi>f</mi></mrow></math></span>.
We can now state another important result of <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a> on the decomposition of <span class="math"><i>D</i></span>-modules for which the Quillen-Suslin theorem plays a central role.</p>
<div class="theorem-theorem"><p><a><b id="uid245">Theorem 11</b></a></p>

<p>(<a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a>) 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>, <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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>f</mi><mo>&#8712;</mo><msub><mi> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span> be a projector defined by two idempotents <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>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</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>Q</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>q</mi></mrow> </msup></mrow></math></span>, namely, they 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>R</mi><mspace width="0.166667em"></mspace><mi>P</mi><mo>=</mo><mi>Q</mi><mspace width="0.166667em"></mspace><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"><msup><mi>P</mi> <mn>2</mn> </msup><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"><msup><mi>Q</mi> <mn>2</mn> </msup><mo>=</mo><mi>Q</mi></mrow></math></span>. Then, there exist four matrices
<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><msup><mi>D</mi> <mrow><mi>m</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>U</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo><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>V</mi> <mn>1</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>l</mi><mo>×</mo><mi>q</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>V</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mi>l</mi><mo>)</mo><mo>×</mo><mi>q</mi></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"><mrow><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>U</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>U</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mi>p</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace><mi>V</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>V</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>V</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mi>q</mi> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">and</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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mo>=</mo><mi>V</mi><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msub><mi>V</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>W</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><msub><mi>V</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msub><mi>W</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>q</mi><mo>×</mo><mi>p</mi></mrow> </msup><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"><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>W</mi> <mn>1</mn> </msub><mspace width="1.em"></mspace><msub><mi>W</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"><msub><mi>W</mi> <mn>1</mn> </msub><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"><msub><mi>W</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mi>p</mi><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo></mrow> </msup></mrow></math></span>.</p>
<p>In particular, the full row rank 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>U</mi> <mn>1</mn> </msub></math></span> (resp., <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mn>2</mn> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>1</mn> </msub></math></span>, <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>2</mn> </msub></math></span>) defines 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>P</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"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>p</mi> </msub><mo>&#8211;</mo><mrow><mi>P</mi><mo>)</mo><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>Q</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><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mo>(</mo></mrow><msub><mi>I</mi> <mi>q</mi> </msub><mo>&#8211;</mo><mrow><mi>Q</mi><mo>)</mo><mo>)</mo></mrow></mrow></math></span>) of rank respectively <span class="math"><i>m</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>p</mi><mo>&#8211;</mo><mi>m</mi></mrow></math></span>, <span class="math"><i>l</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>q</mi><mo>&#8211;</mo><mi>l</mi></mrow></math></span>. In other words, 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><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>m</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>p</mi><mo>&#8211;</mo><mi>m</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mi>l</mi></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mo>(</mo><mi>q</mi><mo>&#8211;</mo><mi>l</mi><mo>)</mo></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>2</mn> </msub><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
</div>
<p>Let us illustrate Theorem <a href="#uid245">11</a> by means of an example coming from control theory.</p>
<div class="theorem-example"><p><a><b id="uid246">Example 20</b></a></p>

<p><i>Let us consider the differential time-delay system describing the movement of a vibrating string with an interior mass studied in <a href="#bid41" title="H. Mounier, J. Rudolph, M. Fliess, P. Rouchon, ``Tracking control of a vibrating string with an inte...">[33]</a>, namely,</i></p>
<div class="hc mathdisplay"><a id="uid247"></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>&#981;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>&#968;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>&#981;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>&#968;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mover accent="true"><mi>&#981;</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>&#968;</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#981;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#968;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#981;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#968;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>&#981;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>+</mo></mrow><msub><mi>&#968;</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>&#8211;</mo><mi>u</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi>&#981;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>&#968;</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8211;</mo><mi>v</mi><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mn>0</mn><mo>,</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(54)</td></tr></table></div>
<p class="nofirst noindent"><i>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>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><msub><mi mathvariant="double-struck">R</mi> <mo>+</mo> </msub></mrow></math></span> are 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 mathvariant="double-struck">Q</mi><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><mi mathvariant="double-struck">Q</mi><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>2</mn> </msub></mrow></math></span> is a two-dimensional <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>-vector space (i.e., there exists no relation 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>m</mi><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><mi>n</mi><mspace width="0.166667em"></mspace><msub><mi>h</mi> <mn>2</mn> </msub><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>m</mi><mo>,</mo><mi>n</mi><mo>&#8712;</mo><mi mathvariant="double-struck">Z</mi></mrow></math></span>), <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#951;</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>&#951;</mi> <mn>2</mn> </msub></math></span> are two non-zero constant parameters of the system.</i></p>
<i></i><p><i>Let us consider the ring of differential time-delay operators <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>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub></mfenced></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><mo>(</mo><mi>d</mi><mi>y</mi><mo>/</mo><mi>d</mi><mi>t</mi><mo>)</mo></mrow><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"><mrow><mo>(</mo></mrow><msub><mi>&#963;</mi> <mi>i</mi> </msub><mrow><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></mrow><msub><mi>h</mi> <mi>i</mi> </msub><mrow><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><mn>2</mn></mrow></math></span>. The condition on <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"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>h</mi> <mn>2</mn> </msub></math></span> implies that the two time-delay operators <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#963;</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>&#963;</mi> <mn>2</mn> </msub></math></span> are </i>incommensurable<i>, i.e., define two independent variables. Hence, <span class="math"><i>D</i></span> is a commutative polynomial ring. Let us denote by <span class="math"><i>R</i></span> the system matrix of (<a href="#uid247">54</a>), 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"><mi>R</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><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><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mtd><mtd><msub><mi>&#951;</mi> <mn>2</mn> </msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>4</mn><mo>×</mo><mn>6</mn></mrow> </msup><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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>6</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>.</i></p>
<i></i><p><i>Computing projectors 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> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow></mrow></math></span>, we obtain a projector <span class="math"><i>f</i></span> defined by the following two idempotent 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"><mi>P</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&#963;</mi> <mn>1</mn> </msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>&#963;</mi> <mn>2</mn> </msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><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>0</mn></mtd><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>0</mn></mtd><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><mi>Q</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mstyle></mtd><mtd><msub><mi>&#951;</mi> <mn>2</mn> </msub></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</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>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Moreover, 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"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</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>P</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> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow></mrow></math></span> are
free <span class="math"><i>D</i></span>-modules of rank 2, 4, 2 and 2. Computing bases by means of a constructive version of the QuillenSuslin theorem, we then get:</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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd><mtd columnalign="left"><mrow><msub><mi>U</mi> <mn>1</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd><mtd columnalign="left"><mrow><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><mtd><mn>0</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>0</mn></mtd><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>0</mn></mtd><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>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mtd><mtd columnalign="left"><mrow><msub><mi>V</mi> <mn>1</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>0</mn></mtd><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>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign="left"><mrow><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mi>Q</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mtd><mtd columnalign="left"><mrow><msub><mi>V</mi> <mn>2</mn> </msub><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Forming the matrices <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><msubsup><mi>U</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>U</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>6</mn> </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"><mrow><mi>V</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>V</mi> <mn>1</mn> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mi>V</mi> <mn>2</mn> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>4</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, we obtain that <span class="math"><i>R</i></span> is then equivalent to the block-diagonal matrix <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><mo>=</mo><mi>V</mi><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></mrow></math></span>:</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><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</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><mrow><mn>1</mn><mo>&#8211;</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><msub><mi>&#963;</mi> <mn>1</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced><mo>&#8211;</mo><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced></mrow></mstyle></mtd><mtd><mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>Now, considering the second diagonal block, 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"><mi>S</mi><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><mn>1</mn><mo>&#8211;</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><msub><mi>&#963;</mi> <mn>1</mn> </msub></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced><mo>&#8211;</mo><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced></mrow></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced></mrow></mstyle></mtd><mtd><mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>and 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>L</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</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>S</mi><mo>)</mo></mrow></mrow></math></span>. Using an algorithm developed in <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a>, we obtain that a projector <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> end </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow></mrow></math></span> is defined by the two idempotent 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"><msup><mi>P</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>a</mi></mtd><mtd><mn>0</mn></mtd><mtd><mi>b</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><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>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="1.em"></mspace><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mfrac><mn>1</mn> <mn>2</mn></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mn>1</mn> <msub><mi>&#951;</mi> <mn>2</mn> </msub></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mrow></mstyle></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</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>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>with the notations:</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><mi>a</mi><mo>=</mo><mfrac><mn>1</mn> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mfenced><mo>&#8211;</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mrow><mo>+</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mfenced><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><mi>b</mi><mo>=</mo><mo>&#8211;</mo><mfrac><msub><mi>&#963;</mi> <mn>1</mn> </msub> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mfrac><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mrow><mo>&#8211;</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mfenced><mo>.</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>We can check 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>P</mi> <mo>&#8242;</mo> </msup><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> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>P</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo></mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>4</mn> </msub><mo>&#8211;</mo><msup><mi>P</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><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></mrow><msup><mi>Q</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"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo></mrow><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>)</mo></mrow></mrow></math></span> are free and, using a constructive version of the Quillen-Suslin theorem, 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><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>P</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace></mrow><msubsup><mi>U</mi> <mn>1</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"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>P</mi> <mo>&#8242;</mo> </msup><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>U</mi> <mn>2</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"><msub><mo form="prefix">ker</mo> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace></mrow><msubsup><mi>V</mi> <mn>1</mn> <mo>&#8242;</mo> </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"><msub><mi> im </mi> <mi>D</mi> </msub><mrow><mo>(</mo><mo>.</mo></mrow><msup><mi>Q</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>=</mo><mi>D</mi><mspace width="0.166667em"></mspace></mrow><msubsup><mi>V</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup></mrow></math></span>, where:</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><mstyle scriptlevel="0" displaystyle="true"><mrow><msubsup><mi>U</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mfenced><mo>&#8211;</mo><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mfenced><mspace width="1.em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="1.em"></mspace><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mfenced><mspace width="1.em"></mspace><mn>0</mn></mfenced><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd><mrow><msubsup><mi>U</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><msubsup><mi>&#963;</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>&#8211;</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8211;</mo></mrow><msub><mi>&#963;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>+</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>&#8211;</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>V</mi> <mn>1</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>1</mn><mo>)</mo><mo>,</mo><mspace width="1.em"></mspace></mrow><msubsup><mi>V</mi> <mn>2</mn> <mo>&#8242;</mo> </msubsup><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="1.em"></mspace></mrow><msubsup><mi>&#963;</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>.</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math></div>
<p class="nofirst noindent"><i>Defining <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><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>U</mi> <mn>1</mn> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msubsup><mspace width="1.em"></mspace><msubsup><mi>U</mi> <mn>2</mn> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>4</mn> </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"><msup><mi>V</mi> <mo>&#8242;</mo> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mi>V</mi> <mn>1</mn> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msubsup><mspace width="1.em"></mspace><msubsup><mi>V</mi> <mn>2</mn> <mrow><mo>&#8242;</mo><mi>T</mi></mrow> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msub><mi> GL </mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, 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"><mover accent="true"><mi>S</mi> <mo>¯</mo></mover><mo>=</mo><msup><mi>V</mi> <mo>&#8242;</mo> </msup><mspace width="0.166667em"></mspace><mi>S</mi><mspace width="0.166667em"></mspace><msup><mi>U</mi> <mrow><mo>&#8242;</mo><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>=</mo><mfenced separators="" open="(" close=")"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mrow></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced></mrow></mstyle></mtd><mtd><msub><mi>&#963;</mi> <mn>2</mn> </msub></mtd></mtr></mtable></mfenced><mo>.</mo></mrow></math></div>
<p class="nofirst noindent"><i>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> diag </mi><mo>(</mo><mi>A</mi><mo>,</mo><mi>B</mi><mo>)</mo></mrow></math></span> the diagonal matrix formed by <span class="math"><i>A</i></span> and <span class="math"><i>B</i></span> and define the new matrices <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>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>=</mo><mi> diag </mi><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mo>,</mo><msup><mi>U</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mn>6</mn> </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"><msup><mi>V</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mo>=</mo><mi> diag </mi><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mo>,</mo><msup><mi>V</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msub><mi> GL </mi> <mn>4</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, then 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"><mover accent="true"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover> <mo>¯</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msup><mi>V</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>V</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>R</mi><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msup><mi>U</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><mi>U</mi><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>=</mo><mi> diag </mi><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mo>,</mo><mover accent="true"><mi>S</mi> <mo>¯</mo></mover><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>The last result proves that the system defined by (<a href="#uid247">54</a>) with 6 unknowns and 4 equations is in fact equivalent to the following simple equation:</i></p>
<div class="hc mathdisplay"><a id="uid248"></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><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>+</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>+</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mo>&#8211;</mo></mrow><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>=</mo><mn>0</mn><mo>.</mo></mrow></mrow></math></td><td class="eqno">(55)</td></tr></table></div>
<p class="nofirst noindent"><i>Using the results summed up in Figure <a href="#uid43">1</a>, the <span class="math"><i>D</i></span>-module 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"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mo>/</mo><mfenced separators="" open="(" close=")"><mi>D</mi><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mspace width="1.em"></mspace><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced><mspace width="1.em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub></mfenced></mfenced><mo>&#8773;</mo><mi>M</mi><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>is reflexive but not projective, i.e., not free, as 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>J</mi><mo>=</mo><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo></mrow><msubsup><mi> ext </mi> <mi>D</mi> <mn>3</mn> </msubsup><mrow><mo>(</mo><mi>T</mi><mo>(</mo></mrow><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo><mo>,</mo><mi>D</mi><mo>)</mo><mo>)</mo></mrow><mo>=</mo><mfenced separators="" open="(" close=")"><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mfenced><mo>,</mo></mrow></math></div>
<p class="nofirst noindent"><i>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> dim </mi> <mi mathvariant="double-struck">C</mi> </msub><mi>V</mi><mrow><mo>(</mo><mi>J</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow></math></span>. As 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>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>&#8712;</mo><mi>J</mi></mrow></math></span>, we obtain 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 mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced></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"><mrow><mi mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced><msub><mo>&#8855;</mo> <mi>D</mi> </msub><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> is free, i.e., (<a href="#uid248">55</a>) is <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#963;</mi> <mn>1</mn> </msub></math></span>-free (<a href="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</a>, <a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>). Computing an injective parametrization of (<a href="#uid248">55</a>), we obtain</i></p>
<div class="hc mathdisplay"><a id="uid249"></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"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>=</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>&#963;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub></mfenced><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>z</mi> <mn>2</mn> </msub><mo>=</mo><mo>&#8211;</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mfenced separators="" open="(" close=")"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>+</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub></mfenced><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mo>,</mo></mrow></mstyle></mtd></mtr><mtr><mtd columnalign="left"><mstyle scriptlevel="0" displaystyle="true"><mrow><msub><mi>z</mi> <mn>3</mn> </msub><mo>=</mo><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mo>,</mo></mrow></mstyle></mtd></mtr></mtable></mfenced></math></td><td class="eqno">(56)</td></tr></table></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"><mrow><mi mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced></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"><mrow><mi mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced><msub><mo>&#8855;</mo> <mi>D</mi> </msub><msup><mi>M</mi> <mo>&#8242;</mo> </msup></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>y</mi> <mn>1</mn> </msub><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mfrac><mspace width="0.166667em"></mspace><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>,</mo><mspace width="1.em"></mspace><msub><mi>y</mi> <mn>2</mn> </msub><mo>=</mo><mo>&#8211;</mo><mfrac><mn>1</mn> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>1</mn> </msub></mrow></mfrac><mrow><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msubsup><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>.</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>Using (<a href="#uid249">56</a>) and the transformation <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>&#981;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#968;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#981;</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>&#968;</mi> <mn>2</mn> </msub><mo>,</mo><mi>u</mi><mo>,</mo><mi>v</mi><msup><mo>)</mo> <mi>T</mi> </msup><mrow><mo>=</mo><mo>(</mo></mrow><msup><mi>U</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><mi>U</mi><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mspace width="0.166667em"></mspace><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><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, we get an injective parametrization of (<a href="#uid247">54</a>) if we also use the advance operator <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#963;</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>.</i></p>
<i></i><p><i>Finally, 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 mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>2</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced></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"><mrow><mi mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>2</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced><msub><mo>&#8855;</mo> <mi>D</mi> </msub><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> is free and, from (<a href="#uid248">55</a>), 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>z</mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo></mrow><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>+</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>+</mo></mrow><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>+</mo></mrow><msub><mover accent="true"><mi>z</mi> <mo>&#729;</mo></mover> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>+</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>(</mo><mi>t</mi><mo>&#8211;</mo></mrow><msub><mi>h</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>h</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>,</mo></mrow></mrow></math></div>
<p class="nofirst noindent"><i>showing 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 mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>2</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced></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"><mrow><mi mathvariant="double-struck">Q</mi><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#951;</mi> <mn>2</mn> </msub><mrow><mo>)</mo></mrow><mfenced separators="" open="[" close="]"><mfrac><mi>d</mi> <mrow><mi>d</mi><mi>t</mi></mrow></mfrac><mo>,</mo><msub><mi>&#963;</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>&#963;</mi> <mn>2</mn> </msub><mo>,</mo><msubsup><mi>&#963;</mi> <mn>2</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mfenced><msub><mo>&#8855;</mo> <mi>D</mi> </msub><msup><mi>M</mi> <mo>&#8242;</mo> </msup></mrow></math></span> admits the basis <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>z</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>z</mi> <mn>2</mn> </msub><mo>}</mo></mrow></math></span>. Using the transformation 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></mrow><msup><mi>U</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><mi>U</mi><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></mrow></math></span>, we get an injective parametrization of (<a href="#uid247">54</a>) if we also use the advance operator <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#963;</mi> <mn>2</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>.</i></p>
</div>
<p>Generalizations of Theorems <a href="#uid242">10</a> and <a href="#uid245">11</a> hold for some classes of non-commutative polynomial rings of functional operators. See <a href="#bid35" title="T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear...">[9]</a> for more details. However, we need to be able to compute bases of free modules over the corresponding rings. A general algorithm has recently been 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> for the ring of differential operators with polynomial or rational coefficients (the so-called <i>Weyl algebras</i>). See <a href="#bid48" title="A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from wwwb.math.rwth-aachen.de/OreModules.">[54]</a> for an implementation of this algorithm and a library of examples which illustrates it.</p>

<h1 id="uid250">8. Conclusion</h1>
<p>In this paper, we have shown new applications of constructive versions of the Quillen-Suslin theorem to mathematical systems theory. In particular, we explained that the construction of bases of a free module over a commutative polynomial ring <span class="math"><i>D</i></span> gives us a way to obtain flat outputs of the corresponding flat multidimensional linear system as well as injective parametrizations of all of its solutions over 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>. We have also shown that a flat multidimensional system was algebraically equivalent to the 1-D controllable linear systems obtained by setting all but one functional operator to particular values in the system matrix. This last result gives an answer to a natural question arising in the study of flat multidimensional linear systems and particularly in the study of differential time-delay systems. Moreover, we gave constructive algorithms for two well-known problems stated by Lin and Bose in the literature of multidimensional systems. These problems are generalizations of Serre´s conjecture. We also show that the computation of (weakly) left-/right-coprime factorizations of rational transfer matrices can constructively be solved by means of the Quillen-Suslin theorem. The need for the computation of bases of free <span class="math"><i>D</i></span>-modules recently appeared as an important issue in the study of the decomposition problems of multidimensional linear systems.
Finally, we have demonstrated the different algorithms by means of the recent implementation of the Quillen-Suslin theorem in the package <span class="smallcap">QuillenSuslin</span>. To our knowledge, this is the first implementation of the Quillen-Suslin theorem in a computer algebra system which is nowadays freely available and dedicated to applications of the Quillen-Suslin theorem and, in particular, to mathematical systems theory and control theory.</p>
<p>New applications of the Quillen-Suslin theorem and of the package <span class="smallcap">QuillenSuslin</span> will be studied in the future (e.g., algebraic geometry, signal processing). Moreover, an interesting but difficult problem is to constructively recognize when 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"><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo><mi>x</mi><mo>]</mo></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>, 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> and <span class="math"><i>A</i></span> is a commutative ring, is <i>extended</i>, namely, when 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>S</mi><mo>&#8712;</mo><msup><mi>A</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 <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><mi>D</mi><msub><mo>&#8855;</mo> <mi>A</mi> </msub><mi>P</mi></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><msup><mi>A</mi> <mrow><mn>1</mn><mo>×</mo><mi>p</mi></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>A</mi> <mrow><mn>1</mn><mo>×</mo><mi>q</mi></mrow> </msup><mrow><mspace width="0.166667em"></mspace><mi>S</mi><mo>)</mo></mrow></mrow></math></span>. See <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a> for more details. It is well-known that the Quillen-Suslin theorem is a particular case of this problem when <span class="math"><i>M</i></span> is a projective <span class="math"><i>D</i></span>-module (<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="#bid14" title="D. Quillen, ``Projective modules over polynomial rings´´, Invent. Math., 36 (1976), 167-171.">[56]</a>, <a href="#bid43" title="J. J. Rotman, An Introduction to Homological Algebra, Academic Press, (1979).">[57]</a>). If we can effectively solve this problem for particular classes of <span class="math"><i>D</i></span>-modules, then, 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 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><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>.</mo><mo>)</mo></mrow><mo>&#8773;</mo><msub><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>S</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span>, which shows that the integration 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> is algebraically equivalent to the integration 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>S</mi><mo>.</mo><mo>)</mo></mrow></mrow></math></span> which contains one functional operator less. Such a result may simplify the explicit integration of these classes of functional systems. Finally, another interesting problem is the computation of a minimal set of generators of 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"><mi>D</mi><mo>=</mo><mi>A</mi><mo>[</mo><mi>x</mi><mo>]</mo></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>, 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>. The results recently obtained in <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> were able to explicitly answer these last two questions on particular examples coming from mathematical physics and control theory. However, the general case seems to be far from being solved.</p>
<p>Finally, more heuristic methods need to be developed and implemented in <span class="smallcap">QuillenSuslin</span> in order to avoid as much as we can the use of the general algorithm for solving Problem <a href="#uid80">2</a>. Different QS-algorithms need also to be implemented in <span class="smallcap">QuillenQuillen</span> and particularly the one recently 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>.</p>

<h1 id="uid251">9. Appendix: <span class="smallcap">QuillenSuslin</span>, a package for computing bases of free modules over commutative polynomial rings</h1>
<h2 id="uid252">9.1. Description of the package <span class="smallcap">QuillenSuslin</span></h2>
<p>The package QuillenSuslin is an implementation of a constructive version of the Quillen-Suslin Theorem. The main idea of the algorithm was inspired by the article of Logar and Sturmfels <a href="#bid24" title="A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, Journal of Algebra, 145 (1992...">[27]</a>. Nevertheless, many important changes were introduced. We have roughly described the implemented algorithm in Section <a href="#uid94" title="A QS-algorithm for commutative polynomial rings">3.4</a>.</p>
<p>The general 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> in the 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> and each inductive step, that reduces the problem by one independent variable, consists of the following three main parts:</p>
<ol>
<li id="uid253"><p class="nofirst noindent">Finding a normalized component in a polynomial vector by means of a change of coordinates (NormalizationStep).</p>
<p></p>
</li>
<li id="uid254"><p class="nofirst noindent">Computing a finite number of local solutions (local loop) using Horrocks´ theorem (Horrocks).</p>
<p></p>
</li>
<li id="uid255"><p class="nofirst noindent">Patching local solutions of Problem <a href="#uid80">2</a> together to get a global one (Patch).</p>
</li></ol>
<p>This general method is generally quite involved.
The package consists of procedures completing a unimodular polynomial row which admits a right-inverse to a square invertible matrix over a given commutative polynomial ring 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">Q</mi></math></span> or <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>. The implementation was improved by many heuristic methods which are used as soon as it is possible. It allows us to avoid the inductive step and leads to simpler outputs (smaller coefficients and lower degrees).</p>
<p><span class="smallcap">QuillenSuslin</span> uses 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>) for computing Janet bases over commutative polynomial rings.</p>
<p><div class="maple-in">

<tt> with(Involutive):</tt>
</div></p>
<p></p>
<p><div class="maple-in">

<tt> with(QuillenSuslin);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">







<!--PASS THROUGH rule--><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>B</mi><mi>a</mi><mi>s</mi><mi>i</mi><mi>s</mi><mi>O</mi><mi>f</mi><mi>C</mi><mi>o</mi><mi>k</mi><mi>e</mi><mi>r</mi><mi>n</mi><mi>e</mi><mi>l</mi><mi>M</mi><mi>o</mi><mi>d</mi><mi>u</mi><mi>l</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>C</mi><mi>o</mi><mi>f</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mi>s</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>C</mi><mi>o</mi><mi>m</mi><mi>p</mi><mi>l</mi><mi>e</mi><mi>t</mi><mi>e</mi><mi>M</mi><mi>a</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>D</mi><mi>e</mi><mi>n</mi><mi>o</mi><mi>m</mi><mi>O</mi><mi>f</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>H</mi><mi>e</mi><mi>u</mi><mi>r</mi><mi>i</mi><mi>s</mi><mi>t</mi><mi>i</mi><mi>c</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>H</mi><mi>o</mi><mi>r</mi><mi>r</mi><mi>o</mi><mi>c</mi><mi>k</mi><mi>s</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>I</mi><mi>n</mi><mi>j</mi><mi>e</mi><mi>c</mi><mi>t</mi><mi>i</mi><mi>v</mi><mi>e</mi><mi>P</mi><mi>a</mi><mi>r</mi><mi>a</mi><mi>m</mi><mi>e</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>I</mi><mi>n</mi><mi>v</mi><mi>e</mi><mi>r</mi><mi>t</mi><mi>i</mi><mi>b</mi><mi>l</mi><mi>e</mi><mi>I</mi><mi>n</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>I</mi><mi>s</mi><mi>I</mi><mi>n</mi><mi>S</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>I</mi><mi>s</mi><mi>M</mi><mi>o</mi><mi>n</mi><mi>i</mi><mi>c</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>I</mi><mi>s</mi><mi>P</mi><mi>a</mi><mi>r</mi><mi>k</mi><mi>N</mi><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>e</mi><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>I</mi><mi>s</mi><mi>R</mi><mi>e</mi><mi>g</mi><mi>u</mi><mi>l</mi><mi>a</mi><mi>r</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>I</mi><mi>s</mi><mi>U</mi><mi>n</mi><mi>i</mi><mi>m</mi><mi>o</mi><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>C</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>C</mi><mi>F</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>M</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>a</mi><mi>u</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mn>2</mn><mi>P</mi><mi>o</mi><mi>l</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>a</mi><mi>u</mi><mi>r</mi><mi>e</mi><mi>n</mi><mi>t</mi><mi>N</mi><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>i</mi><mi>n</mi><mi>B</mi><mi>o</mi><mi>s</mi><mi>e</mi><mn>1</mn><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>L</mi><mi>i</mi><mi>n</mi><mi>B</mi><mi>o</mi><mi>s</mi><mi>e</mi><mn>2</mn><mo>,</mo><mspace width="0.166667em"></mspace><mi>L</mi><mi>o</mi><mi>w</mi><mi>e</mi><mi>s</mi><mi>t</mi><mi>D</mi><mi>e</mi><mi>g</mi><mi>r</mi><mi>e</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>M</mi><mi>a</mi><mi>x</mi><mi>M</mi><mi>i</mi><mi>n</mi><mi>o</mi><mi>r</mi><mi>s</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>M</mi><mi>a</mi><mi>x</mi><mi>i</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>F</mi><mi>F</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>M</mi><mi>a</mi><mi>x</mi><mi>i</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>Q</mi><mi>Q</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>M</mi><mi>a</mi><mi>x</mi><mi>i</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>Z</mi><mi>Z</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>N</mi><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mi>S</mi><mi>t</mi><mi>e</mi><mi>p</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>O</mi><mi>n</mi><mi>e</mi><mi>L</mi><mi>o</mi><mi>c</mi><mi>a</mi><mi>l</mi><mi>S</mi><mi>o</mi><mi>l</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>O</mi><mi>n</mi><mi>e</mi><mi>S</mi><mi>t</mi><mi>e</mi><mi>p</mi><mi>E</mi><mi>Y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>O</mi><mi>n</mi><mi>e</mi><mi>S</mi><mi>t</mi><mi>e</mi><mi>p</mi><mi>Q</mi><mi>S</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>P</mi><mi>a</mi><mi>r</mi><mi>k</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</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>P</mi><mi>a</mi><mi>r</mi><mi>k</mi><mi>M</mi><mi>a</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>x</mi><mi>N</mi><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>P</mi><mi>a</mi><mi>t</mi><mi>c</mi><mi>h</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>Q</mi><mi>S</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>R</mi><mi>e</mi><mi>d</mi><mi>u</mi><mi>c</mi><mi>e</mi><mi>B</mi><mi>a</mi><mi>s</mi><mi>i</mi><mi>s</mi><mi>D</mi><mi>e</mi><mi>g</mi><mi>r</mi><mi>e</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>R</mi><mi>e</mi><mi>d</mi><mi>u</mi><mi>c</mi><mi>e</mi><mi>D</mi><mi>e</mi><mi>g</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>R</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mi>I</mi><mi>n</mi><mi>v</mi><mi>e</mi><mi>r</mi><mi>s</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>R</mi><mi>i</mi><mi>g</mi><mi>h</mi><mi>t</mi><mi>I</mi><mi>n</mi><mi>v</mi><mi>e</mi><mi>r</mi><mi>s</mi><mi>e</mi><mi>F</mi><mi>a</mi><mi>s</mi><mi>t</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>S</mi><mi>H</mi><mi>e</mi><mi>u</mi><mi>r</mi><mi>i</mi><mi>s</mi><mi>t</mi><mi>i</mi><mi>c</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>S</mi><mi>e</mi><mi>t</mi><mi>L</mi><mi>a</mi><mi>s</mi><mi>t</mi><mi>V</mi><mi>a</mi><mi>r</mi><mi>i</mi><mi>a</mi><mi>b</mi><mi>l</mi><mi>e</mi><mi>A</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>S</mi><mi>u</mi><mi>s</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>L</mi><mi>e</mi><mi>m</mi><mi>m</mi><mi>a</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>W</mi><mi>L</mi><mi>C</mi><mi>F</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>,</mo><mi>W</mi><mi>R</mi><mi>C</mi><mi>F</mi><mi>a</mi><mi>c</mi><mi>t</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mo>]</mo></mrow></math></span>

</div>
<h3 id="uid256">9.1.1. The main functions of the package <span class="smallcap">QuillenSuslin</span></h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>QSAlgorithm</tt></td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Compute a unimodular matrix <span class="math"><i>U</i></span> which transforms a row vector admitting a right-inverse into a matrix 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"><mo>(</mo><mi>I</mi><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span></td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>CompleteMatrix</tt></td>
<td style="border-bottom:solid 1px;">Complete a matrix admitting a right-inverse to a unimodular matrix</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>HEURISTIC</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a heuristic method can be applied for the given row vector</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>BasisOfCokernelModule</tt></td>
<td style="border-bottom:solid 1px;">Compute a basis of a free module finitely presented by the given matrix</td>
</tr></table><p></p>

<h3 id="uid257">9.1.2. Important functions of the package <span class="smallcap">QuillenSuslin</span></h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>Horrock</tt>s</td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Implementation of Horrock´s theorem which computes a solution of Problem <a href="#uid79">1</a> over a given local ring</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>IsMonic</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a polynomial row vector has a monic component</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>IsRegular</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a polynomial row vector forms a regular sequence</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>IsUnimod</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a matrix admits a right-inverse</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>MaximalFF</tt></td>
<td style="border-bottom:solid 1px;">Find a maximal ideal over a given one in a polynomial ring with coefficient in a finite field</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>MaximalQQ</tt></td>
<td style="border-bottom:solid 1px;">Find a maximal ideal over a given one in a polynomial ring with rational coefficients</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>MaximalZZ</tt></td>
<td style="border-bottom:solid 1px;">Find a maximal ideal over a given one in a polynomial ring with integer coefficients</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>NormalisationStep</tt></td>
<td style="border-bottom:solid 1px;">Compute an invertible transformation and a change of variables such that the last component of the transformed row becomes monic in the last new variable</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>OneLocalSol</tt></td>
<td style="border-bottom:solid 1px;">Compute a matrix which is unimodular over some localization of the polynomial ring and transforms the given matrix 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><mi>I</mi><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span></td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>OneStepEY</tt><tt>OneStepQS</tt></td>
<td style="border-bottom:solid 1px;">One inductive step of the general algorithm:
return a unimodular matrix which transforms the given matrix into a matrix where the last variable equals 0</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>Patch</tt></td>
<td style="border-bottom:solid 1px;">Patching procedure: patch local solutions together</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>SuslinLemma</tt></td>
<td style="border-bottom:solid 1px;">Implementation of Suslin´s Lemma which computes a polynomial <span class="math"><i>h</i></span> in the ideal generated by polynomials <span class="math"><i>p</i></span> and <span class="math"><i>q</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"><mo form="prefix">deg</mo><mo>(</mo><mi>h</mi><mo>)</mo><mo>=</mo><mo form="prefix">deg</mo><mo>(</mo><mi>p</mi><mo>)</mo><mo>&#8211;</mo><mn>1</mn></mrow></math></span> and its leading coefficient is a coefficient of the polynomial <span class="math"><i>q</i></span></td>
</tr></table><p></p>

<h3 id="uid258">9.1.3. Low level functions of the package <span class="smallcap">QuillenSuslin</span></h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>Cofactors</tt></td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Compute cofactors of a <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>-matrix</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>DenomOf</tt></td>
<td style="border-bottom:solid 1px;">Compute the common denominator of entries of a rational matrix</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LM</tt></td>
<td style="border-bottom:solid 1px;">Return the leading monomial of a polynomial with respect to the given variable</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LC</tt></td>
<td style="border-bottom:solid 1px;">Return the leading coefficient of a polynomial with respect to the given variable</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>MaxMinors</tt></td>
<td style="border-bottom:solid 1px;">Return the maximal minors of a given matrix</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>ReduceDeg</tt></td>
<td style="border-bottom:solid 1px;">Reduce degrees of the components of a polynomial row vector with respect to given variable</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>RightInverse</tt>,
<tt>RightInverseFast</tt></td>
<td style="border-bottom:solid 1px;">Compute a right-inverse of a row vector</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>ReduceBasisDegree</tt></td>
<td style="border-bottom:solid 1px;">Reduce degrees of the elements of basis of a free module over a commutative polynomial ring</td>
</tr></table><p></p>

<h3 id="uid259">9.1.4. Functions of <span class="smallcap">QuillenSuslin</span> for mathematical systems theory</h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>InjectiveParametrization</tt></td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Compute an injective parametrization of a flat multidimensional linear system</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LCFactorization</tt></td>
<td style="border-bottom:solid 1px;">Compute a left-coprime factorization of a rational transfer matrix
when it exists</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LinBose1</tt></td>
<td style="border-bottom:solid 1px;">Compute a solution of Problem <a href="#uid163">3</a> when it exists</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LinBose2</tt></td>
<td style="border-bottom:solid 1px;">Compute a solution of Problem <a href="#uid187">4</a> when it exists</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>RCFactorization</tt></td>
<td style="border-bottom:solid 1px;">Compute a right-coprime factorization of a rational transfer matrix
when it exists</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>SetLastVariableA</tt></td>
<td style="border-bottom:solid 1px;">Compute a unimodular matrix which transforms the given matrix into a matrix where the last variable is set to a given constant <span class="math"><i>A</i></span></td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>WLCFactorization</tt></td>
<td style="border-bottom:solid 1px;">Compute a weakly left-coprime factorization of a rational transfer matrix
when it exists</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>WRCFactorization</tt></td>
<td style="border-bottom:solid 1px;">Compute a weakly right-coprime factorization of a rational transfer matrix
when it exists</td>
</tr></table><p></p>

<h3 id="uid260">9.1.5. Functions of <span class="smallcap">QuillenSuslin</span> for Laurent polynomial rings</h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>IsParkNormalized</tt></td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Test whether or not a Laurent polynomial is normalized, i.e., whether or not all its coefficients are Laurent monomials</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>Laurent2Pol</tt></td>
<td style="border-bottom:solid 1px;">Compute a transformation which maps a row vector over a Laurent polynomial ring into a row vector over a polynomial ring</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LaurentNormalization</tt></td>
<td style="border-bottom:solid 1px;">Return a change of variables which normalizes a Laurent polynomial</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>LowestDegree</tt></td>
<td style="border-bottom:solid 1px;">Return the lowest degree of a Laurent polynomial with respect to the given variable</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>ParkAlgorithm</tt></td>
<td style="border-bottom:solid 1px;">Return a unimodular matrix over the Laurent polynomial ring which transforms the given matrix into a matrix 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"><mo>(</mo><mi>I</mi><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></math></span></td>
</tr></table><p></p>

<h3 id="uid261">9.1.6. Functions of <span class="smallcap">QuillenSuslin</span> for localizations</h3>
<table style="caption-side:bottom; border-collapse: collapse; border-width:1px;"><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;border-top:solid 1px;"><tt>InvertibleIn</tt></td>
<td style="border-bottom:solid 1px;border-top:solid 1px;">Find an element in the intersection of an ideal and a multiplicative closed subset of the polynomial ring</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>IsInS</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a polynomial belogns to a given multiplicative subset of the polynomial ring</td>
</tr><tr><td style="text-align:left;border-right:solid 1px;border-bottom:solid 1px;"><tt>SHeuristic</tt></td>
<td style="border-bottom:solid 1px;">Test whether or not a heuristic method can be used over a localization of the polynomial ring</td>
</tr></table><p></p>
<p>To our knowledge, the <span class="smallcap">QuillenSuslin</span> package is the only package dedicated to the implementation of the Quillen-Suslin theorem (see <a href="#bid61" title="J. Evers, ``Implementation of the Quillen-Suslin theorem in OreModules´´, Internship at INRIA Sophia...">[12]</a> for a partial one) and its applications to mathematical physics, control theory and signal processing. An <span class="smallcap">OreModules</span> version of <span class="smallcap">QuillenSuslin</span> will soon be available on the <span class="smallcap">OreModules</span> web site <a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a> which will extend <a href="#bid61" title="J. Evers, ``Implementation of the Quillen-Suslin theorem in OreModules´´, Internship at INRIA Sophia...">[12]</a>. Applications of the Quillen-Suslin theorem to algebraic geometry will be studied in the future.</p>

<h2 id="uid262">9.2. Classical examples</h2>
<p>We first want to illustrate the <span class="smallcap">QuillenSuslin</span> package on some classical examples appearing in the literature and, in particular, in <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</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="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>.</p>
<h3 id="uid263">9.2.1. Example taken from <a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a></h3>
<p>We consider the row vector <span class="math"><i>R</i></span> over the 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Z</mi><mo>[</mo><mi>x</mi><mo>]</mo></mrow></math></span> given in <a href="#bid22" title="J. Gago-Vargas, ``Constructions in R[x 1 ,...,x n ]: applications to K-theory´´, Journal of Pure and...">[19]</a>.</p>
<p>In the <span class="smallcap">QuillenSuslins</span> package, all the computations are performed for a commutative polynomial ring with rational coefficients if the last parameter is set to <i>true</i> and with integer coefficients if the last parameter is set to <i>false</i>.</p>
<p>We first declare the independent variables <span class="math"><i>x</i></span> of the polynomial ring by setting</p>
<p><div class="maple-in">

<tt> var:=[x];</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>]</mo></mrow></math></span>

</div></p>
<p>and then the row vector <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> R:=[13, x^2-1, 2*x-5];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo><mn>13</mn><mo>,</mo><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>5</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Let us check whether or not <span class="math"><i>R</i></span> admits a right-inverse over the ring <span class="math"><i>D</i></span>.</p>
<p><div class="maple-in">

<tt> RightInverse(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>6</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>144</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Applying the <tt>QSAlgorithm</tt> procedure to the row vector <span class="math"><i>R</i></span>, we then obtain:</p>
<p><div class="maple-in">

<tt> U:=QSAlgorithm(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">


<!--PASS THROUGH rule--><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><mo>[</mo><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>6481</mn><mo>&#8211;</mo><mn>8532</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4175</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>900</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><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"><mrow><mo>&#8211;</mo><mo>(</mo><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow><mo>&#8211;</mo><mrow><mn>5</mn><mo>)</mo><mo>]</mo><mo>[</mo></mrow><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>707</mn><mo>+</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>30</mn><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><mi>x</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"><mrow><mo>[</mo><mn>144</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>59</mn><mo>&#8211;</mo><mn>39</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>721</mn><mo>&#8211;</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The matrix <span class="math"><i>U</i></span> is unimodular over <span class="math"><i>D</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><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 we have:</p>
<p><div class="maple-in">

<tt> Determinant(U);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay ">1
</div></p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div></p>
<p class="nofirst noindent">We note that the <tt>QSAlgorithm</tt> procedure uses a heuristic method as the first two components of the right-inverse of <span class="math"><i>R</i></span> generate the ring <span class="math"><i>D</i></span>. Hence, the general algorithm can be avoided in this example:</p>
<p><div class="maple-in">

<tt> Heuristic(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">



<!--PASS THROUGH rule--><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><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>6481</mn><mo>&#8211;</mo><mn>8532</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4175</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>900</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><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"><mrow><mo>&#8211;</mo><mo>(</mo><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow><mo>&#8211;</mo><mrow><mn>5</mn><mo>)</mo><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><mo>[</mo><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>707</mn><mo>+</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>30</mn><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><mi>x</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"><mrow><mo>[</mo><mn>144</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>59</mn><mo>&#8211;</mo><mn>39</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>721</mn><mo>&#8211;</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can check that <span class="math"><i>R</i></span> is the first row of the 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>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span> of <span class="math"><i>U</i></span>:</p>
<p><div class="maple-in">

<tt> U_inv:=CompleteMatrix(R,var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>i</mi><mi>n</mi><mi>v</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>13</mn></mtd><mtd><mrow><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>5</mn></mrow></mtd></mtr><mtr><mtd><mn>6</mn></mtd><mtd><mrow><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>144</mn><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow></mtd><mtd><mrow><mn>1188</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>360</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>1296</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The residue classes of 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> define a basis of 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>.</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(R, var, false);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mn>6</mn></mtd><mtd><mrow><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>144</mn><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow></mtd><mtd><mrow><mn>1188</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>360</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>1296</mn></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div></p>
<p class="nofirst noindent">We can reduce the degree of the components of the rows defining the basis:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(R, var, false, reduced);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mn>24</mn><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>72</mn></mtd><mtd><mn>83</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>24</mn><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">The injective parametrization of the system defined by <span class="math"><i>R</i></span> is then defined by:</p>
<p><div class="maple-in">

<tt> InjectiveParametrization(Matrix(R), var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mn>6481</mn><mo>&#8211;</mo><mn>8532</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4175</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>900</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup></mrow></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mo>(</mo><mn>55</mn><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>5</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>707</mn><mo>+</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>30</mn><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><mi>x</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>&#8211;</mo><mn>72</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>59</mn><mo>&#8211;</mo><mn>39</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mn>721</mn><mo>&#8211;</mo><mn>468</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>72</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup></mrow></mtd></mtr></mtable></mfenced></math></span>

</div>
<h3 id="uid264">9.2.2. Example taken from <a href="#bid23" title="R. C. Laubenbacher, C. J. Woodburn, ``A new algorithm for the Quillen-Suslin Theorem´´, Contribution...">[23]</a></h3>
<p>We consider the vector vector <span class="math"><i>R</i></span> with entries 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"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>]</mo></mrow></math></span> defined by:</p>
<p><div class="maple-in">

<tt> var:=[x,y];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> R := [x^2*y+1, x+y-2, 2*x*y];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can check that ideal generated by the entries of <span class="math"><i>R</i></span> generates <span class="math"><i>D</i></span> as we have:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Therefore, the row vector <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> and then defines a projective <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>2</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>, i.e., free by the Quillen-Suslin theorem.</p>
<p>As the first and the last components of <span class="math"><i>R</i></span> generate the ring <span class="math"><i>D</i></span>, we know that we can use a heuristic method for computing a basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. This last result can be checked as follows once we note that we are working over the 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">Q</mi></math></span> and then need to set the last parameter to <i>true</i> in the procedures:</p>
<p><div class="maple-in">

<tt> U:=Heuristic(R, var, true);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mn>2</mn><mo>&#8211;</mo><mi>y</mi><mo>&#8211;</mo><mi>x</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>x</mi> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>x</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow> <mn>2</mn></mfrac></mstyle></mtd><mtd><mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div></p>
<p class="nofirst noindent">We can check that the entries of the inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> of the matrix <span class="math"><i>U</i></span> belong to <span class="math"><i>D</i></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>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>, and its first row is <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> U_inv:=CompleteMatrix(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>i</mi><mi>n</mi><mi>v</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><mn>2</mn></mrow></mtd><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>x</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The residue classes of the last two rows 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>U</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> in <span class="math"><i>M</i></span> form a basis of <span class="math"><i>M</i></span>. This result can directly be obtained as follows:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>x</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">The injective parametrization of the system defined by <span class="math"><i>R</i></span> is given by the last two columns of <span class="math"><i>U</i></span>, a fact that can directly be obtained by:</p>
<p><div class="maple-in">

<tt> InjectiveParametrization(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mn>2</mn><mo>&#8211;</mo><mi>y</mi><mo>&#8211;</mo><mi>x</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>x</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow> <mn>2</mn></mfrac></mstyle></mtd><mtd><mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></math></span>

</div>
<h3 id="uid265">9.2.3. Example taken from <a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a></h3>
<p>We consider the row vector <span class="math"><i>R</i></span> with entries in the 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>]</mo></mrow></math></span> (<a href="#bid27" title="I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.">[61]</a>):</p>
<p><div class="maple-in">

<tt> var:=[x,y]:</tt>
</div></p>
<p></p>
<p><div class="maple-in">

<tt> R:=[x-4*y+2,x*y+x,x+4*y^2-2*y+1];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can check that ideal generated by the entries of <span class="math"><i>R</i></span> defines <span class="math"><i>D</i></span> as we have:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Hence, <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> defined by:</p>
<p><div class="maple-in">

<tt> RightInverse(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">Hence, 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, i.e., free by the Quillen-Suslin theorem. Let us compute a basis of <span class="math"><i>M</i></span>. We can first try to check if a basis can be obtained by means of a heuristic method implemented in <span class="smallcap">QuillenSuslin</span>:</p>
<p><div class="maple-in">

<tt> U:=Heuristic(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>y</mi></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mi>y</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We then can check that <span class="math"><i>U</i></span> solved Problem <a href="#uid80">2</a> as we have:</p>
<p><div class="maple-in">

<tt> Determinant(U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">1

</div><p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">As the command <tt>QSAlgorithm</tt> first tries the heuristic methods which have been implemented before using the general algorithm, its output is the same as the one obtain by the command <tt>Heuristic</tt>:</p>
<p><div class="maple-in">

<tt> QSAlgorithm(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mi>y</mi></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mi>y</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">We can check that the first row of the inverse <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> of <span class="math"><i>U</i></span> is exactly the row vector <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> U_inv:=CompleteMatrix(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>i</mi><mi>n</mi><mi>v</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mi>x</mi></mrow></mtd><mtd><mrow><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mi>y</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The residue classes of the last two rows 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>U</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> in <span class="math"><i>M</i></span> form a basis of <span class="math"><i>M</i></span>. This result can directly be obtained by doing:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mi>y</mi></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Finally, the injective parametrization of the system defined by <span class="math"><i>R</i></span> is given by the last two columns of the matrix <span class="math"><i>U</i></span>, namely:</p>
<p><div class="maple-in">

<tt> InjectiveParametrization(Matrix(R), var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mrow><mo>&#8211;</mo><mi>y</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>y</mi></mrow></mtd></mtr></mtable></mfenced></math></span>

</div>
<h3 id="uid266">9.2.4. Example taken from <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a></h3>
<p>We now consider the row vector <span class="math"><i>R</i></span> 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"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Z</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></span> defined in <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>. Let us first introduce the independent variables <span class="math"><i>x</i></span>, <span class="math"><i>y</i></span> and <span class="math"><i>z</i></span>:</p>
<p><div class="maple-in">

<tt> var:=[x,y,z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">We then define the 4 components of the row vector <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> f1:=1-x*y-2*z-4*x*z-x^2*z-2*x*y*z+2*x^2*y^2*z-2*x*z^2-2*x*z^2-2*x^2*z^2+2*x*z^2+2*x^2*y*z^2:f2:=2+4*x+x^2+2*x*y-2*x^2*y^2+2*x*z+2*x^2*z-2*x^2*y*z:f3:=1+2*x+x*y-x^2*y^2+x*z+x^2*z-x^2*y*z:f4:=2+x+y-x*y^2+z-x*y*z:</tt>
</div></p>
<p></p>
<p class="nofirst noindent">The row vector <span class="math"><i>R</i></span> is then defined by:</p>
<p><div class="maple-in">

<tt> R:= [f1, f2, f3, f4];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">


<!--PASS THROUGH rule--><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><mo>[</mo><mn>1</mn><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><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"><mn>2</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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"><mn>1</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mo>+</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>+</mo><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Let us test whether or not the ideal generated by the entries of <span class="math"><i>R</i></span> defines <span class="math"><i>D</i></span>:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Hence, the row vector <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> and 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>4</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, i.e., free by the Quillen-Suslin theorem. Let us compute a basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. We can first check that the second and the third components of <span class="math"><i>R</i></span> generate
the whole ring <span class="math"><i>D</i></span>, so a heuristic method can be used in this example. This result can directly be checked by doing:</p>
<p><div class="maple-in">

<tt> U:=Heuristic(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">













<!--PASS THROUGH rule--><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><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><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></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><mo>[</mo><mn>4</mn><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><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"><mrow><mrow></mrow><mo>(</mo><mo>&#8211;</mo><mn>4</mn><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><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><mo>(</mo><mn>1</mn><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mo>)</mo><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></mrow><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mo>,</mo><mo>&#8211;</mo><mo>(</mo><mo>&#8211;</mo><mn>4</mn><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mo>)</mo><mo>(</mo></mrow><mo>&#8211;</mo><mn>2</mn><mo>&#8211;</mo><mi>x</mi><mo>&#8211;</mo><mi>y</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>z</mi><mo>+</mo><mrow><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>)</mo><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"><mo>[</mo><mo>%</mo><mn>1</mn><mspace width="0.166667em"></mspace><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"><mrow><mo>&#8211;</mo><mo>%</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>1</mn><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><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"><mn>2</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><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"><mrow><mo>%</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mn>2</mn><mo>&#8211;</mo><mi>x</mi><mo>&#8211;</mo><mi>y</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>z</mi><mo>+</mo><mrow><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>)</mo><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><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"><mo>%</mo><mn>1</mn><mo>:</mo><mo>=</mo><mo>&#8211;</mo><mn>7</mn><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>5</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup></mrow></math></span>

</div><p class="nofirst noindent">We can check that the matrix <span class="math"><i>U</i></span> is a solution of Problem <a href="#uid80">2</a> as we have:</p>
<p><div class="maple-in">

<tt> Determinant(U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8211;</mo><mn>1</mn></mrow></math></span>

</div><p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">As the general procedure <tt>QSAlgorithm</tt> first tries to use heuristic methods described in Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a> before applying the general algorithm, it returns the same output as the one obtaind with <tt>Heuristic</tt>. We also know that the first row of the inverse of <span class="math"><i>U</i></span> is <span class="math"><i>R</i></span>, a fact that can be checked using the procedure <tt>CompleteMatrix</tt>:</p>
<p><div class="maple-in">

<tt> B:=CompleteMatrix(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">








<!--PASS THROUGH rule--><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><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"><mrow><mo>[</mo><mn>1</mn><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><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"><mn>2</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><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"><mn>1</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mo>+</mo><mi>x</mi><mo>+</mo><mi>y</mi><mo>&#8211;</mo><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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"><mo>[</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><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></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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mn>7</mn><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>5</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>,</mo><mn>4</mn><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">A basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> can be obtained by:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">




<!--PASS THROUGH rule--><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.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><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></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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mn>7</mn><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>5</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>,</mo><mn>4</mn><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">We can try to reduce the degree of the generators of the basis previously computed using the option <i>reduce</i>:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, false, reduce);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">




<!--PASS THROUGH rule--><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.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><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></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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mn>7</mn><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>5</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>,</mo><mn>4</mn><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">In this case, we cannot reduce the degree of the generators of the previous basis of <span class="math"><i>M</i></span>.</p>

<h3 id="uid267">9.2.5. Example given by A. van den Essen</h3>
<p>The following example was given to us by A. van den Essen (Radboud University Nijmegen). We are grateful to him for letting us using it for illustrating the package <span class="smallcap">QuillenSuslin</span>. We consider the 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>t</mi><mo>,</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></span></p>
<p></p>
<p><div class="maple-in">

<tt> var:=[t,x,y,z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>t</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">and we consider the row vector <span class="math"><i>R</i></span> defined by:</p>
<p><div class="maple-in">

<tt> R:=[2*t*x*z+t*y^2+1, 2*t*x*y+t^2, t*x^2];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We check that the ideal of <span class="math"><i>D</i></span> generated by the entries of <span class="math"><i>R</i></span> defines the whole ring <span class="math"><i>D</i></span>:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Hence, the row vector <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>, and thus, 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> is projective, i.e., free by the Quillen-Suslin theorem. Let us solve Problem <a href="#uid80">2</a> and compute a basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. In order to do that, we can first check that none of the heuristic methods described in Section <a href="#uid81" title="Solution of Problem  in some special cases">3.3</a> and implemented in <span class="smallcap">QuillenSuslin</span> can be used to solve the problem:</p>
<p><div class="maple-in">

<tt> infolevel[QSAlgorithm]:=3;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>Q</mi><mi>S</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>3</mn></mrow></math></span>

</div><p><div class="maple-in">

<tt> U:=QSAlgorithm(R,var, true);</tt>
</div></p>
<p></p>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   [2*t*x*z+t*y^2+1, 2*t*x*y+t^2, t*x^2], [t, x, y, z]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Compute RightInverse
</pre>
<p class="nofirst noindent">A right-inverse of the row vector <span class="math"><i>R</i></span> is defined by:</p>
<pre class="maplettyout">QuillenSuslin/RowQS:   RightInverse
[2*t^2*y^2*x*z-2*t*x*z+t^2*y^4-t*y^2+1, 8*x^3*z^2*y^3+8*x^2*z*y^5-4*x^2*z^2*t*y^2
-4*t*y^4*x*z+4*x^2*z^2+2*y^7*x-t*y^6+2*y^2*x*z, -16*y^4*x^2*z^2-16*y^6*x*z-8*y*x*z^2
-4*y^8-4*y^3*z]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   Test heuristic methods. For more information set
infolevel[Heuristic]:=3
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Not easy - no heuristic methods work
</pre>
<p class="nofirst noindent">We obtain that none of the heuristic methods implemented in <span class="smallcap">QuillenSuslin</span> can be applied to <span class="math"><i>R</i></span>. Hence, we need to use the general algorithm presented in Section <a href="#uid94" title="A QS-algorithm for commutative polynomial rings">3.4</a>. The first step of this algorithm is to compute a transformation which maps <span class="math"><i>R</i></span> to a row vector with a monic component in the last variable <span class="math"><i>z</i></span>. We obtain that the permutation of variables <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>&#8614;</mo><mi>z</mi><mo>,</mo><mi>x</mi><mo>&#8614;</mo><mi>t</mi><mo>,</mo><mi>y</mi><mo>&#8614;</mo><mi>x</mi><mo>,</mo><mi>z</mi><mo>&#8614;</mo><mi>y</mi></mrow></math></span> normalizes <span class="math"><i>R</i></span>:</p>
<div class="maple-out hc mathdisplay "><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><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mspace width="6pt"></mspace><mi>o</mi><mi>v</mi><mi>e</mi><mi>r</mi><mspace width="6pt"></mspace><mi>Q</mi><mi>Q</mi></mrow></math></span>

</div><pre class="maplettyout">QuillenSuslin/RowQS:   The row after normalization
[2*z_*t_*y_+z_*x_^2+1, 2*z_*t_*x_+z_^2, z_*t_^2]
</pre>
<p class="nofirst noindent">Let us call the new row vector <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>. We can now test whether or not any of heuristic methods can be applied to <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>:</p>
<pre class="maplettyout">QuillenSuslin/RowQS:   Test heuristic methods for the normalized  row
 [2*z_*t_*y_+z_*x_^2+1, 2*z_*t_*x_+z_^2, z_*t_^2]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   No heuristic methods work for the
normalized row
</pre>
<p class="nofirst noindent">No heuristic method can be applied to <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>. We can then check if it is possible to reduce the degree of the components of <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> using its monic component <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>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi></mrow></math></span>:</p>
<pre class="maplettyout">QuillenSuslin/RowQS:   No reduction - the rows is already reduced
[2*z_*t_*y_+z_*x_^2+1, 2*z_*t_*x_+z_^2, z_*t_^2]
</pre>
<p class="nofirst noindent">No simplification can be done. Now, we enter the general algorithm:</p>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - Enter the inductive procedure and reduce one variable:
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - Compute local solutions and patch them together!
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - For more information set infolevel[OneStepMore]:=3
</pre>
<p class="nofirst noindent">After one inductive step, 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"><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</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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>,</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>,</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow><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><mo>,</mo></mrow></math></div>
<p class="nofirst noindent">which directly solves Problem <a href="#uid80">2</a>:</p>
<pre class="maplettyout">QuillenSuslin/RowQS:   After one step:    [1, 0, 0]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Now repeat the computation for fm   [1, 0, 0]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   [1, 0, 0], [t_, x_, y_]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Compute RightInverse
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RightInverse   [1, 0, 0]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   Test heuristic methods. For more information set
infolevel[Heuristic]:=3
</pre>
<p class="nofirst noindent">Hence, we obtain that the solution of Problem <a href="#uid80">2</a> is given by matrix <span class="math"><i>U</i></span> defined by:</p>
<div class="maple-out hc mathdisplay ">











<!--PASS THROUGH rule--><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><mo>=</mo></mrow></math></span><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo xmlns:xlink="http://www.w3.org/1999/xlink">[</mo></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"><mn>1</mn><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><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"><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><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"><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><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><mo>[</mo><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</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"><mrow></mrow><mn>1</mn><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></mrow></math></span><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo xmlns:xlink="http://www.w3.org/1999/xlink">[</mo></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"><mn>32</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>48</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>24</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>10</mn> </msup><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"><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><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"><mn>1</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> infolevel[QSAlgorithm]:=0;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>Q</mi><mi>S</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>0</mn></mrow></math></span>

</div><p class="nofirst noindent">We can show that the matrix <span class="math"><i>U</i></span> is a unimodular matrix 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>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>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">1

</div><p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Hence, the first row of the inverse of <span class="math"><i>U</i></span> is the row <span class="math"><i>R</i></span>, a fact which can directly be checked using the command <tt>CompleteMatrix</tt>:</p>
<p><div class="maple-in">

<tt> B:=LinearAlgebra[MatrixInverse](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">









<!--PASS THROUGH rule--><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><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"><mrow><mo>[</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><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><mo>[</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>24</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </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></mrow><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>,</mo><mn>1</mn><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><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"><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>10</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>48</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</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></mrow><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>,</mo><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><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"><mn>1</mn><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The residue classes of the last two rows of the matrix <span class="math"><i>B</i></span> in <span class="math"><i>M</i></span> form a
basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>.</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mspace width="6pt"></mspace><mi>o</mi><mi>v</mi><mi>e</mi><mi>r</mi><mspace width="6pt"></mspace><mi>Q</mi><mi>Q</mi></mrow></math></span>

</div><div class="maple-out hc mathdisplay ">







<!--PASS THROUGH rule--><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><mn>6</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>24</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </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></mrow><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>,</mo><mn>1</mn><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><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"><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>10</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>48</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</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></mrow><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>,</mo><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</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></mrow><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><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"><mn>1</mn><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can try to reduce the degree of the basis elements using the option <i>reduce</i>:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var,true, reduce);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>o</mi><mi>r</mi><mi>m</mi><mi>a</mi><mi>l</mi><mi>i</mi><mi>z</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi><mspace width="6pt"></mspace><mi>o</mi><mi>v</mi><mi>e</mi><mi>r</mi><mspace width="6pt"></mspace><mi>Q</mi><mi>Q</mi></mrow></math></span>

</div><div class="maple-out hc mathdisplay ">


<!--PASS THROUGH rule--><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><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><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><mo>[</mo><mn>16</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Let us now detail the local step of the algorithm, i.e., compute and patch the local solutions to get the unimodular matrix <span class="math"><i>U</i></span>:</p>
<p><div class="maple-in">

<tt> var;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>t</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> R;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> IsMonic(R, var[-1]);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></math></span>

</div></p>
<p><div class="maple-in">

<tt> IsMonic(R, var, p);</tt>
</div></p>
<p>
<div class="maple-out hc mathdisplay "><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>t</mi><mi>r</mi><mi>u</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mo>[</mo><mo>[</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi></mrow><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo></mrow></mrow></math></span>

</div></p>
<p class="nofirst noindent">None of the components of <span class="math"><i>R</i></span> is monic in the last variable <span class="math"><i>z</i></span>. But, the
second component is already monic in the first variable <span class="math"><i>t</i></span>. Hence, by a simple
change of variables, i.e., a permutation of variables, we obtain a normalized component
in the last variable.</p>
<p><div class="maple-in">

<tt> var:=[x,y,z,t];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> varc:=var[1..-2];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mi>c</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> IsMonic(R, var[-1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Let us take an arbitrary 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>1</mn> </msub></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"><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> Id:=[var[1]];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>d</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>x</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> Max[1]:=MaximalQQ(Id, varc);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><msub><mi>x</mi> <mn>1</mn> </msub><mo>:</mo><mo>=</mo><mrow><mo>[</mo><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We compute a local solution of Problem <a href="#uid80">2</a> over the localization <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">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi></mrow><msub><mo>]</mo> <msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub> </msub><mrow><mo>[</mo><mi>t</mi><mo>]</mo></mrow></mrow></math></span> of the 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>,</mo><mi>t</mi><mo>]</mo></mrow></math></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 mathvariant="script">M</mi> <mn>1</mn> </msub></math></span> is the maximal ideal defined by <tt>Max[1]</tt>:</p>
<p><div class="maple-in">

<tt> H[1]:=Horrocks(R, Max[1], var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">







<!--PASS THROUGH rule--><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><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"><mfenced separators="" open="[" close=""></mfenced><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mi>t</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mi>t</mi><mo>)</mo></mrow></mrow> <mrow><mrow><mo>%</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>1</mn><mo>+</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mo>(</mo><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mi>t</mi></mrow></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mfenced separators="" open="" close="]"></mfenced></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"><mfenced separators="" open="[" close=""></mfenced><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo></mrow><msup><mi>y</mi> <mn>2</mn> </msup><msup><mo>)</mo> <mn>2</mn> </msup></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mrow><mspace width="0.166667em"></mspace><mo>,</mo><mo>(</mo><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><msup><mi>x</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </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></mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mo>/</mo><mo>(</mo><mo>%</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>1</mn><mo>+</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mo>)</mo><mo>,</mo><mspace width="0.166667em"></mspace></mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mrow><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi></mrow><mo>+</mo><msup><mi>y</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mfenced separators="" open="" close="]"></mfenced></mrow></math></span><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mspace width="-0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>y</mi> <mn>2</mn> </msup></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mi>t</mi></mrow> <mrow><mrow><mo>(</mo><mn>1</mn><mo>+</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>%</mo><mn>1</mn></mrow></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow> <mrow><mo>%</mo><mn>1</mn></mrow></mfrac></mstyle><mspace width="-0.166667em"></mspace></mfenced></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><mn>1</mn><mo>:</mo><mo>=</mo><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup></mrow></math></span>

</div><p class="nofirst noindent">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>d</mi> <mn>1</mn> </msub></math></span> 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>. 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>d</mi> <mn>1</mn> </msub></math></span> is not invertible in the
polynomial ring <span class="math"><i>D</i></span>, we compute a new local solution in the localization of <span class="math"><i>D</i></span> with respect to 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> <mn>2</mn> </msub></math></span> containing <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>:</p>
<p><div class="maple-in">

<tt> d[1]:=DenomOf(H[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mrow><mo>:</mo><mo>=</mo><mo>(</mo><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>1</mn></mrow><mo>+</mo><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We find 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> <mn>2</mn> </msub></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"><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></span> containing <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> as follows:</p>
<p><div class="maple-in">

<tt> Max[2]:=MaximalQQ([d[1]], varc);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>:</mo><mo>=</mo><mo>[</mo><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>+</mo></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can then compute a local solution of Problem <a href="#uid80">2</a> over the localization
<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">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi></mrow><msub><mo>]</mo> <msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub> </msub><mrow><mo>[</mo><mi>t</mi><mo>]</mo></mrow></mrow></math></span> of <span class="math"><i>D</i></span> with respect to the 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> 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 mathvariant="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></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 mathvariant="script">M</mi> <mn>2</mn> </msub></math></span> is defined by <tt>Max[2]</tt>:</p>
<p><div class="maple-in">

<tt> H[2]:=Horrocks(R, Max[2], var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>t</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>y</mi> <mn>2</mn> </msup></mrow> <msup><mi>x</mi> <mn>2</mn> </msup></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mi>t</mi></mrow> <msup><mi>x</mi> <mn>2</mn> </msup></mfrac></mstyle></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow> <msup><mi>x</mi> <mn>2</mn> </msup></mfrac></mstyle></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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>2</mn> </msub></math></span> is then:</p>
<p><div class="maple-in">

<tt> d[2]:=DenomOf(H[2]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><msup><mi>x</mi> <mn>2</mn> </msup></mrow></math></span>

</div><p class="nofirst noindent">The ideal defined by 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> <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>d</mi> <mn>2</mn> </msub></math></span> generates <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="double-struck">Q</mi><mo>[</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>]</mo></mrow></math></span> as we have:</p>
<p><div class="maple-in">

<tt> IsUnimod([d[1],d[2]], varc, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">We can now patch the local solutions <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"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mn>2</mn> </msub></math></span> together as follows:</p>
<p><div class="maple-in">

<tt> V:=Patch(var[-1], varc, [H[1], H[2]], true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">











<!--PASS THROUGH rule--><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><mo>=</mo></mrow></math></span><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo xmlns:xlink="http://www.w3.org/1999/xlink">[</mo></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"><mn>1</mn><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><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"><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><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"><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><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><mo>[</mo><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</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"><mrow></mrow><mn>1</mn><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></mrow></math></span><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo xmlns:xlink="http://www.w3.org/1999/xlink">[</mo></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"><mn>32</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>48</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><mn>24</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>10</mn> </msup><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"><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><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"><mn>1</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">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>V</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> satisfies 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><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>,</mo><mi>t</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>V</mi><mo>=</mo><mi>R</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).V);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Moreover, we can check that <span class="math"><i>V</i></span> is a unimodular matrix, 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>V</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, as:</p>
<p></p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](V);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">








<!--PASS THROUGH rule--><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><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><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><mo>[</mo><mn>8</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>24</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>6</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>12</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </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></mrow><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>,</mo><mn>1</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</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></mrow><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><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"><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>10</mn> </msup><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>48</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>24</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>x</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></mrow><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>,</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</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></mrow><mo>&#8211;</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</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"><mn>1</mn><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We can check again 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><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>z</mi><mo>,</mo><mn>0</mn><mo>)</mo><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 we have:</p>
<p><div class="maple-in">

<tt> R[0]:=subs(var[-1]=0, R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>0</mn> </msub><mo>:</mo><mo>=</mo><mrow><mo>[</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">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>R</mi> <mn>0</mn> </msub></math></span> already 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"><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>, we finally get that the unimodular matrix <span class="math"><i>V</i></span> over the polynomial ring <span class="math"><i>D</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>V</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>.</p>
<p>Finally, the last two colums of the matrix <span class="math"><i>V</i></span> define an injective parametrization of the
system defined by <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> InjectiveParametrization(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">





<!--PASS THROUGH rule--><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><mn>4</mn><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>6</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>y</mi><mo>&#8211;</mo><msup><mi>t</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><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"><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>+</mo><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>t</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><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><mo>[</mo><mn>1</mn><mo>+</mo><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mo>&#8211;</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mo>&#8211;</mo><msup><mi>y</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>t</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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>2</mn> </msup><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>5</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>t</mi><mo>+</mo><mn>32</mn><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>7</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>9</mn> </msup><mspace width="0.166667em"></mspace><mi>x</mi><mspace width="0.166667em"></mspace><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"><mn>1</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>8</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>4</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>4</mn> </msup><mo>+</mo><mn>16</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>6</mn> </msup><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>t</mi><mspace width="0.166667em"></mspace><msup><mi>y</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn><mspace width="0.166667em"></mspace><msup><mi>x</mi> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mspace width="0.166667em"></mspace><mi>y</mi><mspace width="0.166667em"></mspace><mi>t</mi><mo>]</mo></mrow></mrow></math></span>

</div>
<h3 id="uid268">9.2.6. Example 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 mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span></h3>
<p>To finish, let us consider a non trivial example 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 mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>.</p>
<p><div class="maple-in">

<tt> var:=[z[1],z[2]];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>v</mi><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We consider the row vector <span class="math"><i>R</i></span> defined by:</p>
<p><div class="maple-in">

<tt> R:=[z[1]^2, 3*z[2]+1,z[1]+z[1]*z[2]+z[2]^2];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The row vector <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span> as we have:</p>
<p><div class="maple-in">

<tt> S:=RightInverse(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>[</mo><mn>36</mn><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>18</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>18</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>9</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We 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"><mi>R</mi><mspace width="0.166667em"></mspace><mi>S</mi><mo>=</mo><mn>1</mn></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).Matrix(&lt;S&gt;));</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Hence, we obtain 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, i.e., free by the Quillen-Suslin theorem. Let us compute a unimodular matrix <span class="math"><i>U</i></span> satisfying Problem <a href="#uid80">2</a> and a basis of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. We can first try to use the heuristic methods implemented in <span class="smallcap">QuillenSuslin</span> (we recall that we need to set the parameter to <i>false</i> as the coefficients of <span class="math"><i>D</i></span> belong 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="double-struck">Z</mi></math></span> and not <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>):</p>
<p><div class="maple-in">

<tt> Heuristic(R, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">None of the heuristic methods implemented in <span class="smallcap">QuillenSuslin</span> is successful for this example.
Hence, we have use a general algorithm to solve Problem <a href="#uid80">2</a>. We detail all the intermediate computations:</p>
<p><div class="maple-in">

<tt> infolevel[OneStepMore]:=3;infolevel[QSAlgorithm]:=3;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>O</mi><mi>n</mi><mi>e</mi><mi>S</mi><mi>t</mi><mi>e</mi><mi>p</mi><mi>M</mi><mi>o</mi><mi>r</mi><mi>e</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>3</mn></mrow></math></span>

</div><div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>Q</mi><mi>S</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>3</mn></mrow></math></span>

</div><p><div class="maple-in">

<tt> U:=QSAlgorithm(R, var, false);</tt>
</div></p>
<p></p>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   [z[1]^2, 3*z[2]+1, z[1]+z[1]*z[2]+z[2]^2], [z[1], z[2]]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Compute RightInverse
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RightInverse   [36,-9*z[1]+18*z[1]^2+18*z[1]*z[2]-3*z[2]+1,
-54*z[1]+9]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   Test heuristic methods. For more information set
infolevel[Heuristic]:=3
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Not easy - no heuristic method works
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   The row after normalization
[z[1]^2, 3*z[2]+1, z[1]+z[1]*z[2]+z[2]^2]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Test heuristic methods for the normalized row
[z[1]^2, 3*z[2]+1, z[1]+z[1]*z[2]+z[2]^2]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   No heuristic method works for the normalized row
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   No reduction - The row is already reduced
[z[1]^2, 3*z[2]+1,z[1]+z[1]*z[2]+z[2]^2]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - Enter the inductive procedure and reduce one variable:
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - Compute local solutions and patch them together!
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   OneStep - For more information set infolevel[OneStepMore]:=3
</pre>
<pre class="maplettyout">QuillenSuslin/OneStepMore:   OneStepMore   [z[1]^2, 3*z[2]+1,z[1]+z[1]*z[2]+z[2]^2]
[z[1], z[2]]   false
</pre>
<pre class="maplettyout">QuillenSuslin/OneStepMore:   MAX, r, det   [2, z[1]]   [6*z[1]+1]  3/(6*z[1]+1)
</pre>
<pre class="maplettyout">QuillenSuslin/OneStepMore:   MAX,  r, det   [z[1]+1, 5]   [6*z[1]+1, z[1]^2] 1/z[1]^2
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   After one step:    [z[1]^2, 1, z[1]]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Now repeat the computation for fm  [z[1]^2, 1, z[1]]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   [z[1]^2, 1, z[1]], [z[1]]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   Compute RightInverse
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RightInverse   [0, 1, 0]
</pre>
<pre class="maplettyout">QuillenSuslin/RowQS:   RowQS   Test heuristic methods. For more
information set infolevel[Heuristic]:=3
</pre>
<div class="maple-out hc mathdisplay ">





<!--PASS THROUGH rule--><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><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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>108</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>72</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>1296</mn><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>1</mn> <mn>2</mn> </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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>54</mn><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>1</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>+</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><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"><mrow><mo>(</mo><mn>54</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>54</mn><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>1</mn> </msub><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><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"><mn>36</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>324</mn><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>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><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>1</mn> <mn>4</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </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"><mrow><mo>[</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mo>,</mo><mn>1</mn><mo>&#8211;</mo><mn>108</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1944</mn><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>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>324</mn><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>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> infolevel[OneStepMore]:=0;infolevel[QSAlgorithm]:=0;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>O</mi><mi>n</mi><mi>e</mi><mi>S</mi><mi>t</mi><mi>e</mi><mi>p</mi><mi>M</mi><mi>o</mi><mi>r</mi><mi>e</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>0</mn></mrow></math></span>

</div><div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>f</mi><mi>o</mi><mi>l</mi><mi>e</mi><mi>v</mi><mi>e</mi><msub><mi>l</mi> <mrow><mi>Q</mi><mi>S</mi><mi>A</mi><mi>l</mi><mi>g</mi><mi>o</mi><mi>r</mi><mi>i</mi><mi>t</mi><mi>h</mi><mi>m</mi></mrow> </msub></mrow><mo>:</mo><mo>=</mo><mn>0</mn></mrow></math></span>

</div><p class="nofirst noindent">The matrix <span class="math"><i>U</i></span> solves Problem <a href="#uid80">2</a> as <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></p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">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>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>3</mn><mo>×</mo><mn>3</mn></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>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> as we have:</p>
<p><div class="maple-in">

<tt> U_inv:=LinearAlgebra[MatrixInverse](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">




<!--PASS THROUGH rule--><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><mi>i</mi><mi>n</mi><mi>v</mi><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"><mrow><mo>[</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </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"><mrow><mo>[</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>108</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>324</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1944</mn><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>1</mn> </msub><mspace width="0.166667em"></mspace><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"><mn>324</mn><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>1</mn> </msub><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><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>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>162</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>54</mn><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>1</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>+</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">In particular, we check that the first row of the inverse of the matrix <span class="math"><i>U</i></span> is <span class="math"><i>R</i></span>.
The residue classes of the last two rows 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>U</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> in <span class="math"><i>M</i></span> form a basis
of the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>.</p>
<p>Let us detail the different steps of the general algorithm on this example and compute
the matrix <span class="math"><i>U</i></span> step by step:</p>
<p><div class="maple-in">

<tt> var;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>z</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> R;</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> IsMonic(R, var,p);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>t</mi><mi>r</mi><mi>u</mi><mi>e</mi><mo>,</mo><mspace width="0.166667em"></mspace><mo>[</mo><mo>[</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace><mo>[</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace><mn>3</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The third component of <span class="math"><i>R</i></span> is already monic 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>z</mi> <mn>2</mn> </msub></math></span>, so we can
enter the local loop. Let us take an arbitrary 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>1</mn> </msub></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 mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> varc:=var[1..-2];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>v</mi><mi>a</mi><mi>r</mi><mi>c</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> Max:=[2,z1];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>M</mi><mi>a</mi><mi>x</mi><mo>:</mo><mo>=</mo><mo>[</mo><mn>2</mn><mo>,</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p><div class="maple-in">

<tt> Max[1]:=MaximalZZ(Max, varc);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><msub><mi>x</mi> <mn>1</mn> </msub><mrow><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mo>]</mo></mrow></mrow></math></span>

</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"><msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>2</mn><mo>)</mo></mrow></mrow></math></span>. We now compute a local solution over the localization <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">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><msub><mo>]</mo> <msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> of the polynomial ring <span class="math"><i>D</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 mathvariant="script">M</mi> <mn>1</mn> </msub></math></span> denotes the maximal ideal <tt>Max[1]</tt>:</p>
<p><div class="maple-in">

<tt> H[1]:=Horrocks(R, Max1, var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><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><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mn>3</mn><mspace width="0.166667em"></mspace><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo></mrow></mrow> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mn>1</mn></mrow> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mn>3</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>9</mn> <mrow><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></mfrac></mstyle></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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>d</mi> <mn>1</mn> </msub></math></span> 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>. 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>d</mi> <mn>1</mn> </msub><mo>=</mo><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn><mo>&#8713;</mo><msub><mi mathvariant="script">M</mi> <mn>1</mn> </msub></mrow></math></span> is not invertible in <span class="math"><i>D</i></span>, we need to compute a new local solution over a localization of the ring <span class="math"><i>D</i></span> with respect to 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> <mn>2</mn> </msub></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 mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> containing <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>:</p>
<p><div class="maple-in">

<tt> d[1]:=DenomOf(H[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mn>6</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>1</mn></mrow></math></span>

</div><p><div class="maple-in">

<tt> Max[2]:=MaximalZZ([d[1]], varc);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><msub><mi>x</mi> <mn>2</mn> </msub><mrow><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>5</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We then get 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>2</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mn>1</mn><mo>,</mo><mn>5</mn><mo>)</mo></mrow></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 mathvariant="double-struck">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>. Let us compute a local solution in a localization <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">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><msub><mo>]</mo> <msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub> </msub><mrow><mo>[</mo></mrow><msub><mi>z</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"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi mathvariant="script">M</mi> <mn>2</mn> </msub></math></span> is the maximal ideal <tt>Max[2]</tt>:</p>
<p><div class="maple-in">

<tt> H[2]:=Horrocks(R, Max[2], var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn></mrow> <msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup></mrow> <msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mfrac></mstyle></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></mrow></math></span>

</div><p class="nofirst noindent">The denominator <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>2</mn> </msub></math></span> 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>2</mn> </msub></math></span> is then:</p>
<p><div class="maple-in">

<tt> d[2]:=DenomOf(H[2]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow></math></span>

</div><p class="nofirst noindent">We 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"><msub><mi>d</mi> <mn>2</mn> </msub><mo>=</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8713;</mo><msub><mi mathvariant="script">M</mi> <mn>2</mn> </msub></mrow></math></span> and the ideal defined by 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> <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>d</mi> <mn>2</mn> </msub></math></span> generates <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">Z</mi><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span> as we have:</p>
<p><div class="maple-in">

<tt> IsUnimod([d[1],d[2]], var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">We can now patch the local solutions <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"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>H</mi> <mn>2</mn> </msub></math></span> together to get a global solution <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msub xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mn>1</mn> </msub></math></span>:</p>
<p><div class="maple-in">

<tt> U[1]:=Patch(var[-1], varc, [H[1], H[2]], false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">




<!--PASS THROUGH rule--><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></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><mo>[</mo><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>108</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>1</mn><mo>+</mo><mn>36</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>)</mo><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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>54</mn><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>1</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>+</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><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"><mo>&#8211;</mo><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>&#8211;</mo><mrow><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>108</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>36</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><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><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1944</mn><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>+</mo><mn>54</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>324</mn><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>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>+</mo><mn>1</mn><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">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>U</mi> <mn>1</mn> </msub></math></span> is unimodular, 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>U</mi> <mn>1</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>, as we have:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">1

</div><p class="nofirst noindent">Moreover, 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>U</mi> <mn>1</mn> </msub></math></span> satisfies 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>z</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>z</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><mi>R</mi><mo>(</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><msub><mi>z</mi> <mn>1</mn> </msub></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">which can be compared with:</p>
<p><div class="maple-in">

<tt> R[0]:=subs(z[2]=0, R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>0</mn> </msub><mrow><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Now, we need to reduce <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>0</mn> </msub></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><mn>0</mn><mo>)</mo></mrow></math></span> by means of elementary column operations:</p>
<p><div class="maple-in">

<tt> U[2]:=Heuristic(R[0], var, false);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>2</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Finaly, we obtain that 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>V</mi><mo>=</mo><msub><mi>U</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub></mrow></math></span> defined by</p>
<p><div class="maple-in">

<tt> V:=simplify(U[1].U[2]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">





<!--PASS THROUGH rule--><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><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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>108</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>72</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>1296</mn><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>1</mn> <mn>2</mn> </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"><mrow><mo>[</mo><mo>&#8211;</mo><mn>54</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>54</mn><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>1</mn> </msub><mo>&#8211;</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>1</mn><mo>+</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><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"><mrow><mo>(</mo><mn>54</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mn>54</mn><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>1</mn> </msub><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><mn>9</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><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"><mn>36</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mn>324</mn><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>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><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>1</mn> <mn>4</mn> </msubsup><mo>&#8211;</mo><mn>648</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>108</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </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"><mrow><mo>[</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>27</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mspace width="0.166667em"></mspace><mo>(</mo><mn>6</mn><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>&#8211;</mo><mn>108</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1944</mn><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>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><mn>324</mn><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>1</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">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>V</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></p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).V);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">and <span class="math"><i>V</i></span> is unimodular over <span class="math"><i>D</i></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>V</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span>, as we have:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](V);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8211;</mo><mn>1</mn></mrow></math></span>

</div><p class="nofirst noindent">Hence, the matrix <span class="math"><i>V</i></span> is a solution of Problem <a href="#uid80">2</a>.</p>
<p>To finish, 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"><msup><mi>D</mi> <mo>&#8242;</mo> </msup><mrow><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><mrow><mo>]</mo></mrow></mrow></math></span> and compute a basis of the <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> <mo>&#8242;</mo> </msup></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"><msup><mi>M</mi> <mo>&#8242;</mo> </msup><mo>=</mo><msup><mi>D</mi> <mrow><mo>&#8242;</mo><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>R</mi><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>4</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>12</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>36</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn></mfrac></mstyle><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>4</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">We can try to reduce the degrees of the basis elements:</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(Matrix(R), var,true, reduce);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>9</mn></mfrac></mstyle><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><msub><mi>z</mi> <mn>2</mn> </msub> <mn>3</mn></mfrac></mstyle><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><msub><mi>z</mi> <mn>1</mn> </msub> <mn>3</mn></mfrac></mstyle></mrow></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>3</mn><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn></mfrac></mstyle><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>4</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">The residue classes of the rows of the previous matrix 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>M</mi> <mo>&#8242;</mo> </msup></math></span> define a basis of the free <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> <mo>&#8242;</mo> </msup></math></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>

<h2 id="uid269">9.3. Laurent polynomial rings &amp; Park´s Algorithm</h2>
<p>As it was described in <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>, the problem of completing a matrix <span class="math"><i>R</i></span> which admits a right-inverse over the 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> (<span class="math"><i>k</i></span> is a field) to a square unimodular matrix over <span class="math"><i>D</i></span> can be transformed into Problem <a href="#uid79">1</a> by means of a certain transformation what we shall call <i>Park´s transformation</i> in what follows. Then, we can use a QS algorithm for the corresponding polynomial matrix and use the inverse transformation to get a solution over the Laurent polynomial ring <span class="math"><i>D</i></span>. We refer the reader to <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a> for more details. The corresponding algorithms have been implemented in <span class="smallcap">QuillenSuslin</span> as we are going to demonstrate it now.</p>
<h3 id="uid270">9.3.1. Example taken from <a href="#bid62" title="H. Park, ``Generalizations and variations of Quillen-Suslin theorem and their applications´´, worksh...">[39]</a></h3>
<p>Let us consider the 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 mathvariant="double-struck">Q</mi><mo>[</mo><mi>z</mi><mo>,</mo></mrow><msup><mi>z</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>]</mo></mrow></mrow></math></span> and the following row vector <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> var:=[z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> R:=[1/z+1+z, 2/z^2+1,1-z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo></mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mi>z</mi></mfrac></mstyle><mo>+</mo><mn>1</mn><mo>+</mo><mi>z</mi><mo>,</mo><mspace width="0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>2</mn> <msup><mi>z</mi> <mn>2</mn> </msup></mfrac></mstyle><mrow><mo>+</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mo>&#8211;</mo><mi>z</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The row vector <span class="math"><i>R</i></span> is unimodular over <span class="math"><i>D</i></span> if the polynomial row vector <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> obtained by means of Park´s transformation 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 mathvariant="double-struck">Q</mi><mo>[</mo><mi>Z</mi><mo>]</mo></mrow></math></span>. Let us compute Park´s transformation for <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> nvar:=[Z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>v</mi><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>Z</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> R_bar, T, su, isu:=Laurent2Pol(R, var, nvar);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">


<!--PASS THROUGH rule--><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>b</mi><mi>a</mi><mi>r</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>T</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>s</mi><mi>u</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>i</mi><mi>s</mi><mi>u</mi><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"><mrow><mo>[</mo><mn>1</mn><mo>+</mo><mi>Z</mi><mo>+</mo></mrow><msup><mi>Z</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>Z</mi><mo>&#8211;</mo><msup><mi>Z</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>Z</mi><mo>&#8211;</mo><msup><mi>Z</mi> <mn>2</mn> </msup><mrow><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace></mrow><mfenced open="[" close="]"><mtable><mtr><mtd><mi>z</mi></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><msup><mi>z</mi> <mn>3</mn> </msup><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn></mrow> <msup><mi>z</mi> <mn>2</mn> </msup></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>z</mi><mo>[</mo><mn>2</mn><mi>e</mi><mi>x</mi><mo>]</mo><mn>0</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mi>z</mi></mfrac></mstyle></mtd><mtd><mrow><mn>0</mn><mo>[</mo><mn>2</mn><mi>e</mi><mi>x</mi><mo>]</mo><mn>0</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><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"><mo>[</mo><mi>z</mi><mo>=</mo><mi>Z</mi><mo>]</mo><mo>,</mo><mspace width="0.166667em"></mspace><mo>[</mo><mi>Z</mi><mo>=</mo><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> IsUnimod(R_bar, nvar);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Hence, 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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>=</mo><mo>(</mo><mn>1</mn><mo>+</mo><mi>Z</mi><mo>+</mo></mrow><msup><mi>Z</mi> <mn>2</mn> </msup><mspace width="0.277778em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>Z</mi><mo>&#8211;</mo><msup><mi>Z</mi> <mn>2</mn> </msup><mspace width="0.277778em"></mspace><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>Z</mi><mo>&#8211;</mo><msup><mi>Z</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow></math></span> 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"><mover accent="true"><mi>D</mi> <mo>¯</mo></mover><mo>=</mo><mi mathvariant="double-struck">Q</mi><mrow><mo>[</mo><mi>Z</mi><mo>]</mo></mrow></mrow></math></span>, and thus, we obtain that <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>. Hence, 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 a projective <span class="math"><i>D</i></span>-module. It is constructively proved 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> that every projective module over a Laurent polynomial ring is free. Therefore, the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is free. In order to compute a basis of <span class="math"><i>M</i></span>, following <a href="#bid37" title="H. Park, ``Symbolic computation and signal processing´´, J. Symb. Computation, 37(2004), 209-226.">[38]</a>, we first compute a basis of the free <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>-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><mover accent="true"><mi>D</mi> <mo>¯</mo></mover> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><mover accent="true"><mi>D</mi> <mo>¯</mo></mover><mspace width="0.166667em"></mspace><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mrow><mo>)</mo></mrow></mrow></math></span> and then use Park´s transformation to get one of the free <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span>. In other words, we first compute <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>U</mi> <mo>¯</mo></mover><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo></mrow><mover accent="true"><mi>D</mi> <mo>¯</mo></mover><mrow><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"><mover accent="true"><mi>R</mi> <mo>¯</mo></mover><mspace width="0.166667em"></mspace><mover accent="true"><mi>U</mi> <mo>¯</mo></mover><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> and 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>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> 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>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>. We can directly obtain <span class="math"><i>U</i></span> by calling the procedure <tt>ParkAlgorithm</tt> as follows:</p>
<p><div class="maple-in">

<tt> U:=ParkAlgorithm(Matrix(R), var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow> <mrow><mn>3</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup></mrow> <msup><mi>z</mi> <mn>2</mn> </msup></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>8</mn></mrow> <mrow><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi></mrow></mfrac></mstyle></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mo>+</mo><mi>z</mi></mrow> <mrow><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>1</mn><mo>+</mo><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mo>(</mo><mn>2</mn><mo>+</mo><mi>z</mi></mrow><msup><mo>)</mo> <mn>2</mn> </msup></mrow> <mn>3</mn></mfrac></mstyle></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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"><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 we have</p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">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> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> as <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><mo>=</mo><mn>1</mn></mrow></math></span></p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">1

</div><p class="nofirst noindent">Finally, a basis of the free <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is given by the residue classes of the
two last rows of the 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>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span> of <span class="math"><i>U</i></span> defined by:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>1</mn><mo>+</mo><mi>z</mi><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mo>+</mo><msup><mi>z</mi> <mn>2</mn> </msup></mrow> <msup><mi>z</mi> <mn>2</mn> </msup></mfrac></mstyle></mtd><mtd><mrow><mn>1</mn><mo>&#8211;</mo><mi>z</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mo>+</mo><mi>z</mi></mrow> <mrow><mn>3</mn><mspace width="0.166667em"></mspace><mi>z</mi></mrow></mfrac></mstyle></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo></mrow> <mrow><mn>3</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mrow><mo>&#8211;</mo><mfrac><mrow><mn>2</mn><mo>+</mo><mi>z</mi></mrow> <mn>3</mn></mfrac></mrow></mstyle></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>
</div><p><div class="maple-in">

<tt> <div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"></mrow></math></span></div></tt>
</div></p>
<p></p>

<h3 id="uid271">9.3.2. Example taken from <a href="#bid38" title="H. Park, A Computational Theory of Laurent Polynomial Rings and Multidimensional FIR Systems, Univer...">[36]</a></h3>
<p class="nofirst noindent">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><mi>z</mi><mo>,</mo></mrow><msup><mi>z</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mrow><mo>]</mo></mrow></mrow></math></span> and the matrix <span class="math"><i>R</i></span> with entries in <span class="math"><i>D</i></span> defined by:</p>
<p><div class="maple-in">

<tt> var:=[z];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>z</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> R:=Matrix([[3/z-2-2*z+2*z^2, 3/z-2*z,2*z],[6/z+25-23*z-16*z^2+20*z^3, 6/z+29-4*z-20*z^2, 2+4*z+20*z^2]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>3</mn> <mi>z</mi></mfrac></mstyle><mo>&#8211;</mo><mn>2</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>3</mn> <mi>z</mi></mfrac></mstyle><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi></mrow></mtd><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi></mrow></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>6</mn> <mi>z</mi></mfrac></mstyle><mo>+</mo><mn>25</mn><mo>&#8211;</mo><mn>23</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>20</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup></mrow></mtd><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>6</mn> <mi>z</mi></mfrac></mstyle><mo>+</mo><mn>29</mn><mo>&#8211;</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>20</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mrow><mn>2</mn><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>20</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We can check 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><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 projective, and thus, free by the constructive result obtained by Park 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>. Let us compute a unimodular <span class="math"><i>U</i></span> over <span class="math"><i>D</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"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> U:=ParkAlgorithm(Matrix(R), var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><small><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>&#8211;</mo><mn>6</mn><mo>&#8211;</mo><mn>29</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>+</mo><mn>4</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>20</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>&#8211;</mo><mn>3</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mn>3</mn><mo>+</mo></mrow><msup><mi>z</mi> <mn>2</mn> </msup><mrow><mo>)</mo></mrow></mrow> <mi>z</mi></mfrac></mstyle></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>6</mn><mo>+</mo><mn>25</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>23</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mn>16</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup><mo>+</mo><mn>20</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>4</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mn>3</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><msup><mi>z</mi> <mn>3</mn> </msup></mrow> <mi>z</mi></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mn>3</mn><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>z</mi><mo>&#8211;</mo></mrow><msup><mi>z</mi> <mn>2</mn> </msup><mo>+</mo><msup><mi>z</mi> <mn>3</mn> </msup><mrow><mo>)</mo></mrow></mrow> <mi>z</mi></mfrac></mstyle></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span></small>

</div><p class="nofirst noindent">We 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><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> simplify(Matrix(R).U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Finally, we check that <span class="math"><i>U</i></span> is a unimodular matrix, 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>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>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">1

</div>
<h2 id="uid272">9.4. Equivalences of flat multidimensional linear systems</h2>
<h3 id="uid273">9.4.1. Examples <a href="#uid137">7</a>, <a href="#uid143">8</a> and <a href="#uid152">10</a></h3>
<p>We consider the differential time-delay linear system defined by (<a href="#uid138">20</a>) (<a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>).
The matrix <span class="math"><i>R</i></span> associated with (<a href="#uid138">20</a>) is defined by</p>
<p><div class="maple-in">

<tt> R:=Matrix([[d-delta+2, 2,-2*delta],[d,d,-d*delta-1]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></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><mi>d</mi></mtd><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">where <span class="math"><i>d</i></span> denotes the time-derivative operator and &#948; the time-delay operator.
Hence, we need to 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"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>]</mo></mrow></math></span> and the <span class="math"><i>D</i></span>-module 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>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>.</p>
<p><div class="maple-in">

<tt> var:=[d, delta];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">Let us check whether or not the matrix <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">As the matrix <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>, we then obtain that the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is projective, i.e., free by the Quillen-Suslin theorem. Let us solve Problem <a href="#uid79">1</a>:</p>
<p><div class="maple-in">

<tt> U:=QSAlgorithm(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi></mrow></mtd><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We can check that <span class="math"><i>U</i></span> gives a solution of Problem <a href="#uid79">1</a> as 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><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span></p>
<p><div class="maple-in">

<tt> simplify(R.U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">and <span class="math"><i>U</i></span> is a unimodular matrix over <span class="math"><i>D</i></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>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>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></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><mi>d</mi></mtd><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>
</div><p><div class="maple-in">

<tt> <div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"></mrow></math></span></div></tt>
</div></p>
<p></p>
<p class="nofirst noindent">The residue class of the last row 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> in <span class="math"><i>M</i></span> defines a basis of <span class="math"><i>M</i></span>. Moreover,
the system defined by <span class="math"><i>R</i></span> admits the following injective parametrization</p>
<p><div class="maple-in">

<tt> Q:=InjectiveParametrization(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">i.e., 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> (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"><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo><mi mathvariant="double-struck">R</mi><mo>)</mo></mrow></mrow></math></span>), 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 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> has the form</p>
<p><div class="maple-in">

<tt> simplify(Matrix(Q).Matrix([[xi]]));</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mo>&#8211;</mo><mo>(</mo><mo>&#8211;</mo></mrow><msup><mi>d</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mi>d</mi><mo>+</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mrow><mo>+</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>2</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>d</mi><mo>+</mo><mi>&#948;</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">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><mi mathvariant="script">F</mi></mrow></math></span>. As 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 flat, by Corollary <a href="#uid151">8</a>, we know 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><mo form="prefix">ker</mo> <mi mathvariant="script">F</mi> </msub><mrow><mo>(</mo><mi>R</mi><mo>(</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>
is algebraically equivalent to the controllable ordinary differential system without time-delay, i.e., to <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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>. We can compute an invertible transformation which maps <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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-solutions <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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> U[1]:=SetLastVariableA(R, var, 1, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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"><mi>R</mi><mrow><mo>(</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo></mrow><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>1</mn> </msub><mo>=</mo><mi>R</mi><mrow><mo>(</mo><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> R[1]:=simplify(R.U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>2</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mi>d</mi></mtd><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The inverse transformation, i.e., the transformation sending
<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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>, is then
defined by the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">As 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>E</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>d</mi><mo>]</mo></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>N</mi><mo>=</mo><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is also free, we can find <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>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>E</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"><msub><mi>R</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. For instance, we get:</p>
<p><div class="maple-in">

<tt> U[2]:=QSAlgorithm(R[1], var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>2</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Similarly, we can prove 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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is algebraically equivalent 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><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>, namely,</p>
<p><div class="maple-in">

<tt> R[0]:=subs(delta=0, R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>0</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mn>2</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mi>d</mi></mtd><mtd><mi>d</mi></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">by means of the following invertible transformation:</p>
<p><div class="maple-in">

<tt> V[1]:=SetLastVariableA(R, var, 0, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>V</mi> <mn>1</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><mi>&#948;</mi></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The inverse transformation, i.e., the transformation sending
<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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>, is
defined by the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](V[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">As 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>E</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>d</mi><mo>]</mo></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>P</mi><mo>=</mo><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>0</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is also free, we can find <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>V</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>E</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"><msub><mi>R</mi> <mn>0</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. In particular, we have:</p>
<p><div class="maple-in">

<tt> V[2]:=QSAlgorithm(R[0], var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>V</mi> <mn>2</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mi>d</mi><mo>+</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>d</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><msup><mi>d</mi> <mn>2</mn> </msup></mtd></mtr></mtable></mfenced></mrow></math></span>

</div>
<h3 id="uid274">9.4.2. Examples <a href="#uid148">9</a> and <a href="#uid155">11</a></h3>
<p>We consider the differential time-delay linear system (<a href="#uid149">27</a>)
studied in <a href="#bid57" title="H. Logemann, ``On the transfer matrix of a neutral system: characterizations of exponential stabilit...">[28]</a>. The matrix <span class="math"><i>R</i></span> of functional operators associated with (<a href="#uid149">27</a>) has the form</p>
<p><div class="maple-in">

<tt> R:=Matrix([[d+1, 0, -1],[-1, d-d*delta+a, 0]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">where <span class="math"><i>a</i></span> denotes a real constant, <span class="math"><i>d</i></span> the time-derivative operator and &#948; the time-delay operator. Let us consider 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>(</mo><mi>a</mi><mo>)</mo><mo>[</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>]</mo></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><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>.</p>
<p><div class="maple-in">

<tt> var:=[d, delta];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">Let us check that <span class="math"><i>R</i></span> admits a right-inverse over <span class="math"><i>D</i></span>:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Hence, 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><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 projective, i.e., free by the Quillen-Suslin theorem. Let us compute <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"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> U:=MatrixQS(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>(</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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><mi>U</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>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span> as we have:</p>
<p><div class="maple-in">

<tt> simplify(R.U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">The system defined by <span class="math"><i>R</i></span> admits the following injective parametrization</p>
<p><div class="maple-in">

<tt> Q:=InjectiveParametrization(R, var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">i.e., 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> (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"><msup><mi>C</mi> <mi>&#8734;</mi> </msup><mrow><mo>(</mo><mi mathvariant="double-struck">R</mi><mo>)</mo></mrow></mrow></math></span>), 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 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> has the form</p>
<p><div class="maple-in">

<tt> simplify(Matrix(Q).Matrix([[xi]]));</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>(</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></mtd></mtr><mtr><mtd><mi>&#958;</mi></mtd></mtr><mtr><mtd><mrow><mo>(</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>a</mi><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#958;</mi></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">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><mi mathvariant="script">F</mi></mrow></math></span>. As 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 flat, by Corollary <a href="#uid151">8</a>, we know 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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is algebraically equivalent to the controllable ordinary differential system without time-delay, i.e., to <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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>. Let us compute an invertible transformation which sends <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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> U[1]:=SetLastVariableA(R, var, 1, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi><mspace width="0.166667em"></mspace><msup><mi>d</mi> <mn>2</mn> </msup><mo>+</mo><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>+</mo><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> R[1]:=simplify(R.U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mi>a</mi></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The invertible transformation, i.e., the transformation sending <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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mn>1</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span>, is defined by the matrix <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>U</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](U[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mo>(</mo><mi>&#948;</mi><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><msup><mi>d</mi> <mn>2</mn> </msup><mo>+</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">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>E</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>(</mo><mi>a</mi><mo>)</mo><mo>[</mo><mi>d</mi><mo>]</mo></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>P</mi><mo>=</mo><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>1</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is also free. 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>U</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>E</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"><msub><mi>R</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>U</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>, which can be computed by:</p>
<p><div class="maple-in">

<tt> U[2]:=QSAlgorithm(R[1], var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>2</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mi>a</mi></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mi>a</mi></mfrac></mstyle></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>(</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>a</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Similarly, by Corollary <a href="#uid142">7</a>, 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>, 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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is algebraically equivalent 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><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo><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"><mi>R</mi><mo>(</mo><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo></mrow></math></span> is defined by:</p>
<p><div class="maple-in">

<tt> R[0]:=subs(delta=0, R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>0</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>d</mi><mo>+</mo><mi>a</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The invertible transformation which maps <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><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is defined by:</p>
<p><div class="maple-in">

<tt> V[1]:=SetLastVariableA(R, var, 0, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>V</mi> <mn>1</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi><mspace width="0.166667em"></mspace><msup><mi>d</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The inverse transformation which sends <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><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></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>-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><mi>d</mi><mo>,</mo><mn>0</mn><mo>)</mo><mo>.</mo><mo>)</mo></mrow></mrow></math></span> is then defined by <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msubsup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>V</mi> <mn>1</mn> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></math></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](V[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><msup><mi>d</mi> <mn>2</mn> </msup><mo>+</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Finally, as 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>E</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>(</mo><mi>a</mi><mo>)</mo><mo>[</mo><mi>d</mi><mo>]</mo></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>P</mi><mo>=</mo><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>E</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msub><mi>R</mi> <mn>0</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span> is also free, 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>V</mi> <mn>2</mn> </msub><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>E</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"><msub><mi>R</mi> <mn>0</mn> </msub><mspace width="0.166667em"></mspace><msub><mi>V</mi> <mn>2</mn> </msub><mrow><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></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>V</mi> <mn>2</mn> </msub></math></span> can be chosen as follows:</p>
<p><div class="maple-in">

<tt> V[2]:=QSAlgorithm(R[0],var, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>V</mi> <mn>2</mn> </msub><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mi>d</mi><mo>+</mo><mi>a</mi></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>(</mo><mi>d</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mo>+</mo><mi>a</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div>
<h3 id="uid275">9.4.3. Example of a &#948;-flat differential time-delay system taken from <a href="#bid63" title="H. Kwakernaak, R. Sivan, Linear Optimal Control Systems, Wiley-Interscience, 1972.">[22]</a></h3>
<p>We now consider the stirred tank model described on pages 450-451 of <a href="#bid63" title="H. Kwakernaak, R. Sivan, Linear Optimal Control Systems, Wiley-Interscience, 1972.">[22]</a>.
Let us first 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><mi>&#952;</mi><mo>,</mo></mrow><msub><mi>c</mi> <mn>0</mn> </msub><mo>,</mo><msub><mi>c</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>c</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>V</mi> <mn>0</mn> </msub><mrow><mo>)</mo><mo>[</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>]</mo></mrow></mrow></math></span>,
where <span class="math"><i>d</i></span> denotes the time-derivative operator and &#948; the time-delay operator.</p>
<p class="nofirst noindent"><div class="maple-in">

<tt> var:=[d, delta];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">The system is defined by the following matrix <span class="math"><i>R</i></span> of functional operators:</p>
<p><div class="maple-in">

<tt> R := Matrix([[d+1/(2*theta),0,-1,-1],[0,d+1/theta,-(c1-c0)*delta/V0,-(c2-c1)*delta/V0]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>d</mi><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>d</mi><mo>+</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mn>1</mn> <mi>&#952;</mi></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mrow><mi>V</mi><mn>0</mn></mrow></mfrac></mstyle></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mi>c</mi><mn>2</mn><mo>&#8211;</mo><mi>c</mi><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mrow><mi>V</mi><mn>0</mn></mrow></mfrac></mstyle></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Let us check whether or not 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>4</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 free:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">As the full row rank matrix <span class="math"><i>R</i></span> does not admit a right-inverse over <span class="math"><i>D</i></span>, the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is then not free. 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"><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> but <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>2</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo></mrow><mo>&#8800;</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>N</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mi>T</mi> </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"><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo></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><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mi>&#952;</mi><mspace width="0.166667em"></mspace><mi>d</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>&#948;</mi><mo>)</mo></mrow></mrow></math></span>.
See the library of <span class="smallcap">OreModules</span> examples (<a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a>) for more details. Hence, using Figure <a href="#uid43">1</a>, we obtain that <span class="math"><i>M</i></span> is a torsion-free but not a projective <span class="math"><i>D</i></span>-module. In particular, <span class="math"><i>M</i></span> is not a free <span class="math"><i>D</i></span>-module, and thus, for every 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>, 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 flat.</p>
<p>However, 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"><mi>&#948;</mi><mo>&#8712;</mo><msub><mi> ann </mi> <mi>D</mi> </msub><mrow><mo>(</mo></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><mo>)</mo></mrow></mrow></math></span> proves that 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>&#948;</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>&#948;</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"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><msub><mi>D</mi> <mi>&#948;</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>&#948;</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></span> is the localization of the ring 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><mo>{</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>,</mo><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>,</mo><mo>...</mo><mo>}</mo></mrow></math></span> of <span class="math"><i>D</i></span> (<a href="#bid8" title="F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems o...">[5]</a>, <a href="#bid64" title="A. Quadrat, ``Extended Bézout identities´´, proceedings of the European Control Conference (ECC), Po...">[49]</a>). In a system-theoretic language, it means that, for every <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>&#948;</mi> </msub></math></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> (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>), 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 flat when we also use the time-advance operator <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#948;</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span>. In this case, the first system is said to be <i>&#948;-flat</i> (<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>). Many examples of time-delay systems were proved to be &#948;-flat (e.g., transport equations, wave equations). For more details and examples, see <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="#bid9" title="F. Chyzak, A. Quadrat, D. Robertz, ``OreModules: A symbolic package for the study of multidimensiona...">[6]</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> and the references therein.</p>
<p>Let us compute a 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>&#948;</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>&#948;</mi> </msub><msub><mo>&#8855;</mo> <mi>D</mi> </msub><mi>M</mi></mrow></math></span> by declaring &#948; to be an invertible element, i.e., by considering the 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>A</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>(</mo><mi>&#952;</mi><mo>,</mo></mrow><msub><mi>c</mi> <mn>0</mn> </msub><mo>,</mo><msub><mi>c</mi> <mn>1</mn> </msub><mo>,</mo><msub><mi>c</mi> <mn>2</mn> </msub><mo>,</mo><msub><mi>V</mi> <mn>0</mn> </msub><mrow><mo>,</mo><mi>&#948;</mi><mo>)</mo><mo>[</mo><mi>d</mi><mo>]</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> var2:=[d];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mn>2</mn><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">We can check that the <span class="math"><i>A</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>P</mi><mo>=</mo><msup><mi>A</mi> <mrow><mn>1</mn><mo>×</mo><mn>4</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo></mrow><msup><mi>A</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 projective, i.e. free by 4 of Theorem <a href="#uid32">2</a>:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var2);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">Let us compute a basis:</p>
<p><div class="maple-in">

<tt> U:=QSAlgorithm(R, var2, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">




<!--PASS THROUGH rule--><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><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><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"><mo>[</mo><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>0</mn><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mn>1</mn><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"><mfenced separators="" open="[" close=""></mfenced><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mi>c</mi><mn>1</mn></mrow> <mrow><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mi>c</mi><mn>1</mn><mo>)</mo></mrow> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#952;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mfenced separators="" open="" close="]"></mfenced></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"><mfenced separators="" open="[" close=""></mfenced><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn></mrow> <mrow><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle><mspace width="0.166667em"></mspace><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle><mspace width="-0.166667em"></mspace><mspace width="-0.166667em"></mspace><mfenced separators="" open="" close="]"></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Let us compute the determinant of the matrix <span class="math"><i>U</i></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo></mrow></mfrac></mstyle></mrow></math></span>

</div><p class="nofirst noindent">Hence, 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>c</mi> <mn>0</mn> </msub><mo>+</mo><msub><mi>c</mi> <mn>2</mn> </msub><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msub><mi>c</mi> <mn>1</mn> </msub><mo>&#8800;</mo><mn>0</mn></mrow></math></span>, which will be assumed in what follows, then 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 over <span class="math"><i>A</i></span>. See <a href="#bid44" title="F. Chyzak, A. Quadrat, D. Robertz, OreModules project, directly available from http://wwwb.math.rwth...">[4]</a> for the other cases. Therefore, if we also use the advance operator <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><msup xmlns:xlink="http://www.w3.org/1999/xlink"><mi>&#948;</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span>, an injective parametrization of the system is then defined by:</p>
<p><div class="maple-in">

<tt> Q:=InjectiveParametrization(R, var2,true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mi>c</mi><mn>1</mn><mo>)</mo></mrow> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#952;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo></mrow></mfrac></mstyle></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mo>(</mo><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mo>(</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mn>2</mn><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>V</mi><mn>0</mn><mspace width="0.166667em"></mspace><mo>(</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#952;</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow> <mrow><mi>&#948;</mi><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</mo><mi>c</mi><mn>2</mn><mo>+</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>c</mi><mn>1</mn><mo>&#8211;</mo><mi>c</mi><mn>0</mn><mo>)</mo><mspace width="0.166667em"></mspace><mi>&#952;</mi></mrow></mfrac></mstyle></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Hence, we get that 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 &#951; 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> defined by <span class="math"><i>R</i></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">F</mi></math></span> is a <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>&#948;</mi> </msub></math></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>), 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><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> <mn>2</mn> </msup></mrow></math></span>. Finally, a &#948;-flat output 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> 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"><mi>&#958;</mi><mo>=</mo><mi>T</mi><mspace width="0.166667em"></mspace><mi>&#951;</mi></mrow></math></span>, where <span class="math"><i>T</i></span> denotes the last row of the unimodular matrix <span class="math"><i>U</i></span>. Another &#948;-flat output 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 then</p>
<p><div class="maple-in">

<tt> BasisOfCokernelModule(R, var2, true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">i.e., 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"><mo>{</mo><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>&#951;</mi> <mn>2</mn> </msub><mo>}</mo></mrow></math></span> with 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>&#951;</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>&#951;</mi> <mn>1</mn> </msub><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>&#951;</mi> <mn>4</mn> </msub><mrow><mo>)</mo></mrow></mrow></math></span>.</p>

<h2 id="uid276">9.5. Pommaret´s theorem of the Lin-Bose conjecture</h2>
<h3 id="uid277">9.5.1. Examples <a href="#uid180">13</a>, <a href="#uid195">14</a> and <a href="#uid196">15</a></h3>
<p>Let us consider the differential time-delay model of a flexible rod
with a forced applied on one end defined in Example Ê<a href="#uid180">13</a> (<a href="#bid40" title="H. Mounier, Propriétés structurelles des systèmes linéaires à retards: aspects théoriques et pratiqu...">[32]</a>).
The system matrix <span class="math"><i>R</i></span> with entries in the 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>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>]</mo></mrow></math></span>, where <span class="math"><i>d</i></span> denotes the time-derivative operator and &#948; the time-delay operator, is defined by</p>
<p><div class="maple-in">

<tt> var:=[d, delta];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>]</mo></mrow></math></span>

</div><p><div class="maple-in">

<tt> R:=Matrix([[d,-d*delta,-1],[2*delta*d,-d*delta^2-d,0]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Let us check whether or not 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><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 projective, i.e., free by the Quillen-Suslin theorem:</p>
<p><div class="maple-in">

<tt> IsUnimod(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>a</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></math></span>

</div><p class="nofirst noindent">We obtain that <span class="math"><i>R</i></span> does not admit a right-inverse over <span class="math"><i>D</i></span> and the <span class="math"><i>D</i></span>-module <span class="math"><i>M</i></span> is not free. In particular, there does not exist 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"><mrow><mi>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span> or, equivalently, <span class="math"><i>R</i></span> cannot be completed to a unimodular matrix over <span class="math"><i>D</i></span>. Let us compute the set of all maximal minors of <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> m:=MaxMinors(R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>m</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msup><mi>d</mi> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><msup><mi>d</mi> <mn>2</mn> </msup><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mrow><mo>&#8211;</mo><mi>d</mi><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The ideal <span class="math"><i>I</i></span> of <span class="math"><i>D</i></span> defined by the maximal minors is generated by</p>
<p><div class="maple-in">

<tt> Involutive[InvolutiveBasis](m, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>d</mi><mo>]</mo></mrow></math></span>

</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"><mi>I</mi><mo>=</mo><mo>(</mo><mi>d</mi><mo>)</mo></mrow></math></span>, and thus, <span class="math"><i>d</i></span> is a greatest common divisor of the maximal minors of <span class="math"><i>R</i></span>. In particular, using Figure <a href="#uid43">1</a>, we obtain that the torsion <span class="math"><i>D</i></span>-submodule <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> of <span class="math"><i>M</i></span> is not reduced to 0.
Using <span class="smallcap">OreModules</span> (<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>), let us compute <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></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>N</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><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><msup><mi>R</mi> <mi>T</mi> </msup><mrow><mo>)</mo></mrow></mrow></math></span>.
We first need to define 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"><mi>D</mi><mo>=</mo><mi mathvariant="double-struck">Q</mi><mo>[</mo><mi>d</mi><mo>,</mo><mi>&#948;</mi><mo>]</mo></mrow></math></span> in <span class="smallcap">OreModules</span> in the following way:</p>
<p><div class="maple-in">

<tt> Alg:=OreModules[DefineOreAlgebra](diff=[d,t],dual_shift=[delta,s],polynom=[t,s]):</tt>
</div></p>
<p></p>
<p class="nofirst noindent">We then obtain</p>
<p><div class="maple-in">

<tt> Ext:=OreModules[Exti](Involution(convert(R,array),Alg),Alg,1);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>E</mi><mi>x</mi><mi>t</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mspace width="-0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mn>1</mn><mo>+</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mi>&#948;</mi></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mn>1</mn><mo>+</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>+</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced><mspace width="-0.166667em"></mspace></mfenced></mrow></math></span>

</div><p class="nofirst noindent">i.e., if we denote by</p>
<p><div class="maple-in">

<tt> Q:=Ext[2];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mn>1</mn><mo>+</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mi>&#948;</mi></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">then, 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>1</mn> </msubsup><mrow><mo>(</mo><mi>N</mi><mo>,</mo><mi>D</mi><mo>)</mo><mo>=</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><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>, which is not
reduced to 0 as the first matrix of <tt>Ext</tt> shows that the residue class of the first row of <span class="math"><i>Q</i></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"><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> defines the element</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>z</mi><mo>=</mo><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi><mspace width="0.166667em"></mspace><msub><mi>y</mi> <mn>1</mn> </msub><mrow><mo>+</mo><mo>(</mo><mn>1</mn><mo>+</mo></mrow><msup><mi>&#948;</mi> <mn>2</mn> </msup><mrow><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>y</mi> <mn>2</mn> </msub></mrow></math></div>
<p class="nofirst noindent">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>d</mi><mspace width="0.166667em"></mspace><mi>z</mi><mo>=</mo><mn>0</mn></mrow></math></span>. As the residue classes of the second and third rows of <span class="math"><i>Q</i></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"><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> are reduced to 0, we deduce 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><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is only generated by <span class="math"><i>z</i></span>.</p>
<p>We also know that <span class="math"><i>R</i></span> can be factorized by <span class="math"><i>Q</i></span>, i.e., 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>P</mi><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></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><mo>=</mo><mi>P</mi><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span>. The matrix <span class="math"><i>P</i></span> can be computed as follows:</p>
<p><div class="maple-in">

<tt> P:=OreModules[Factorize](R,Q,Alg);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We note that <span class="math"><i>P</i></span> is not a square matrix. Let us compute <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>Q</mi><mo>)</mo></mrow></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> Q[2]:=OreModules[SyzygyModule](Q,Alg);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>:</mo><mo>=</mo><mfenced open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Hence, we obtain that <span class="math"><i>Q</i></span> has not full row rank, i.e., 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><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> is not free. However, 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><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is projective, i.e., free by the Quillen-Suslin theorem as <span class="math"><i>Q</i></span> admits a generalized inverse <span class="math"><i>X</i></span> over <span class="math"><i>D</i></span> defined by</p>
<p><div class="maple-in">

<tt> X:=OreModules[GeneralizedInverse](Q,Alg);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>X</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">i.e., 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"><mi>Q</mi><mspace width="0.166667em"></mspace><mi>X</mi><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><mi>Q</mi></mrow></math></span>. Another way to prove this result is to check 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>Q</mi> <mn>2</mn> </msub></math></span> trivially admits a right-inverse over <span class="math"><i>D</i></span>, a fact that 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>L</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mrow><mo>/</mo><mo>(</mo><mi>D</mi><mspace width="0.166667em"></mspace></mrow><msub><mi>Q</mi> <mn>2</mn> </msub><mrow><mo>)</mo><mo>&#8773;</mo></mrow><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span> is a projective, and thus, a free <span class="math"><i>D</i></span>-module by the Quillen-Suslin theorem. Hence, following Algorithm <a href="#uid170">2</a>, we can constructively solved Problem <a href="#uid163">3</a>. We first solve Problem <a href="#uid79">1</a> for the full row rank 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>Q</mi> <mn>2</mn> </msub></math></span>:</p>
<p><div class="maple-in">

<tt> U:=QSAlgorithm(convert(Q[2],Matrix),var,true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mi>&#948;</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We can check that <span class="math"><i>U</i></span> is a unimodular matrix over <span class="math"><i>D</i></span> as we have:</p>
<p><div class="maple-in">

<tt> U_inv:=linalg[inverse](U);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>i</mi><mi>n</mi><mi>v</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">If we denote by <span class="math"><i>B</i></span> the matrix formed by the last two 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>U</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup></math></span>, namely,</p>
<p><div class="maple-in">

<tt> B:=linalg[submatrix](U_inv,2..3,1..3);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">we know that 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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span> solving Problem <a href="#uid163">3</a> is then 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"><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mo>=</mo><mi>B</mi><mspace width="0.166667em"></mspace><mi>Q</mi></mrow></math></span></p>
<p><div class="maple-in">

<tt> Rp:=simplify(evalm(B&amp;*Q));</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>p</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mn>1</mn><mo>+</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</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>R</mi> <mo>&#8242;</mo> </msup></math></span> was denoted by <tt>Rp</tt>. Hence, 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><mn>3</mn></mrow> </msup><mspace width="0.166667em"></mspace><mi>Q</mi><mo>=</mo><msup><mi>D</mi> <mrow><mn>1</mn><mo>×</mo><mn>2</mn></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </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>R</mi><mo>=</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </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"><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>2</mn></mrow> </msup></mrow></math></span> is defined by</p>
<p><div class="maple-in">

<tt> Rpp:=OreModules[Factorize](R,Rp,Alg);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>p</mi><mi>p</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</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>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></math></span> was denoted by <tt>Rpp</tt>, 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>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></math></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"><mo movablelimits="true" form="prefix">det</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><mi>d</mi></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> linalg[det](Rpp);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><i>d</i></span>

</div><p class="nofirst noindent">We can check again 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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></math></span> is a projective, i.e., a free <span class="math"><i>D</i></span>-module as the ideal of <span class="math"><i>D</i></span> defined by the set of maximal minors 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>R</mi> <mo>&#8242;</mo> </msup></math></span>, namely,</p>
<p><div class="maple-in">

<tt> maxminors:=MaxMinors(convert(Rp,Matrix),var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>m</mi><mi>a</mi><mi>x</mi><mi>m</mi><mi>i</mi><mi>n</mi><mi>o</mi><mi>r</mi><mi>s</mi><mo>:</mo><mo>=</mo><mo>[</mo><mi>d</mi><mspace width="0.166667em"></mspace></mrow><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi><mo>,</mo><mspace width="0.166667em"></mspace><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">generates <span class="math"><i>D</i></span>:</p>
<p><div class="maple-in">

<tt> Involutive[InvolutiveBasis](maxminors,var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>]</mo></mrow></math></span>

</div><p class="nofirst noindent">Equivalently, we can check that 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> admits a right-inverse of <span class="math"><i>D</i></span> defined by:</p>
<p><div class="maple-in">

<tt> OreModules[RightInverse](Rp,Alg);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Of course, a solution of Problem <a href="#uid163">3</a> can directly be obtained by calling the <span class="smallcap">QuillenSuslin</span> procedure <tt>LinBose1</tt> as follows:</p>
<p><div class="maple-in">

<tt> F:=LinBose1(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>[</mo></mrow><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">The second matrix of the previous output corresponds 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> solving Problem <a href="#uid163">3</a>, whereas the first one corresponds 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> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </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"><mi>R</mi><mo>=</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </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"><mo movablelimits="true" form="prefix">det</mo><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mo>=</mo><mi>d</mi></mrow></math></span>, where <span class="math"><i>d</i></span> denotes the greatest common divisor of the maximal minors of <span class="math"><i>R</i></span> (which is, by the way, the time-derivative operator <span class="math"><i>d</i></span> in this particular case!).</p>
<p>Let us now solve Problem <a href="#uid187">4</a>. We first need to solve Problem <a href="#uid79">1</a> for the full row rank 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> using the procedure <tt>QSAlgorithm</tt>:</p>
<p><div class="maple-in">

<tt> V:=QSAlgorithm(convert(Rp,Matrix),var,true);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd><mrow><mo>&#8211;</mo><mn>1</mn><mo>&#8211;</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd></mtr><mtr><mtd columnalign="right"><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd></mtr><mtr><mtd columnalign="right"><mn>1</mn></mtd><mtd><mrow><mo>&#8211;</mo><mstyle scriptlevel="0" displaystyle="true"><mfrac><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow> <mn>2</mn></mfrac></mstyle></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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"><mi>V</mi><mo>&#8712;</mo><msub><mi> GL </mi> <mn>3</mn> </msub><mrow><mo>(</mo><mi>D</mi><mo>)</mo></mrow></mrow></math></span> as we have</p>
<p><div class="maple-in">

<tt> V_inv:=LinearAlgebra[MatrixInverse](V);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>i</mi><mi>n</mi><mi>v</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd><mrow><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mn>1</mn><mo>+</mo><msup><mi>&#948;</mi> <mn>2</mn> </msup></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">and we can check that the matrix formed by the first two rows 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>V</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span> is exactly <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>, 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>R</mi> <mo>&#8242;</mo> </msup><mrow><mspace width="0.166667em"></mspace><mi>V</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>. Let us denote by <span class="math"><i>T</i></span> the matrix formed by the last row 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>V</mi> <mrow><mi>i</mi><mi>n</mi><mi>v</mi></mrow> </msub></math></span></p>
<p><div class="maple-in">

<tt> T:=LinearAlgebra[SubMatrix](V_inv,3..3,1..3);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced open="[" close="]"><mtable><mtr><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">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>W</mi><mo>=</mo><mo>(</mo></mrow><msup><mi>R</mi> <mi>T</mi> </msup><mspace width="1.em"></mspace><msup><mi>T</mi> <mi>T</mi> </msup><msup><mo>)</mo> <mi>T</mi> </msup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>3</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span>, namely:</p>
<p><div class="maple-in">

<tt> W:=Matrix([[R],[T]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">We can finally check that <span class="math"><i>W</i></span> is a solution of Problem <a href="#uid187">4</a> as its determinant is exactly <span class="math"><i>d</i></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](W);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><i>d</i></span>

</div><p class="nofirst noindent">We can directly obtain a solution of Problem Ê<a href="#uid187">4</a> by using the procedure <tt>LinBose2</tt>:</p>
<p><div class="maple-in">

<tt> C:=LinBose2(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>C</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mi>d</mi></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd columnalign="right"><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mspace width="0.166667em"></mspace><mi>d</mi><mspace width="0.166667em"></mspace><mi>&#948;</mi></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>d</mi><mspace width="0.166667em"></mspace><msup><mi>&#948;</mi> <mn>2</mn> </msup><mo>&#8211;</mo><mi>d</mi></mrow></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><mi>&#948;</mi> <mn>2</mn></mfrac></mstyle></mtd><mtd columnalign="right"><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math></span>

</div>
<h3 id="uid278">9.5.2. Example <a href="#uid197">16</a></h3>
<p>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>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 polynomial matrix defined in Example <a href="#uid197">16</a>, namely:</p>
<p><div class="maple-in">

<tt> var:=[z[1],z[2],z[3]];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>v</mi><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> R:=Matrix([[z[1]*z[2]^2*z[3],0, -z[1]^2*z[2]^2-1],[z[1]^2*z[3]^2+z[3],-z[3],-z[1]^3*z[3]-z[1]]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><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><mtd><mn>0</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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The set of the maximal minors of the full row rank matrix <span class="math"><i>R</i></span> is defined by:</p>
<p><div class="maple-in">

<tt> m:=MaxMinors(R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>m</mi><mo>:</mo><mo>=</mo><mo>[</mo><mo>&#8211;</mo></mrow><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><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>,</mo><mspace width="0.166667em"></mspace><mo>(</mo><mo>&#8211;</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>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Let us compute a Janet basis of the ideal of <span class="math"><i>D</i></span> formed by the maximal minors of <span class="math"><i>R</i></span>:</p>
<p><div class="maple-in">

<tt> Involutive[InvolutiveBasis](m, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">As the ideal defined by the maximal minors of <span class="math"><i>R</i></span> is equal to the principal ideal of <span class="math"><i>D</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>z</mi> <mn>3</mn> </msub></math></span>, we then deduce 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>z</mi> <mn>3</mn> </msub></math></span> is a greatest common divisor of the maximal minors. Hence, 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><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 not projective, and thus, not free and there exists no 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> 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>R</mi><mspace width="0.166667em"></mspace><mi>U</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>I</mi> <mn>2</mn> </msub><mrow><mspace width="1.em"></mspace><mn>0</mn><mo>)</mo></mrow></mrow></math></span>.</p>
<p>However, if we divide the maximal minors of <span class="math"><i>R</i></span> 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>z</mi> <mn>3</mn> </msub></math></span> then the ideal generated by these new elements, 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><mo>(</mo><mo>&#8211;</mo></mrow><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><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><mo>,</mo><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><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mrow></math></span>, exactly generates <span class="math"><i>D</i></span>, a fact which is equivalent to 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"><mi>M</mi><mo>/</mo><mi>t</mi><mo>(</mo><mi>M</mi><mo>)</mo></mrow></math></span> is a projective <span class="math"><i>D</i></span>-module, i.e., free by the Quillen-Suslin theorem.
Hence, we can solve Problems <a href="#uid163">3</a> and <a href="#uid187">4</a>:</p>
<p><div class="maple-in">

<tt> F:=LinBose1(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">

<!--PASS THROUGH rule--><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><mo>[</mo></mrow><mfenced open="[" close="]"><mtable><mtr><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></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><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><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><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><mtd><mrow><mo>&#8211;</mo><mn>2</mn><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>5</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></mtd></mtr></mtable></mfenced><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"><mfenced 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><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><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><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>5</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><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><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">If 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> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></math></span> the first matrix appearing in the previous output and 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> <mo>&#8242;</mo> </msup></math></span> the second one, we can check that we then have the factorization <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><msup><mi>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup></mrow></math></span></p>
<p><div class="maple-in">

<tt> simplify(F[1].F[2]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><mi>z</mi><mn>1</mn><mspace width="0.166667em"></mspace><mi>z</mi><msup><mn>2</mn> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mn>3</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>&#8211;</mo><mi>z</mi><msup><mn>1</mn> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><msup><mn>2</mn> <mn>2</mn> </msup><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>z</mi><msup><mn>1</mn> <mn>2</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><msup><mn>3</mn> <mn>2</mn> </msup><mo>+</mo><mi>z</mi><mn>3</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>z</mi><mn>3</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><mi>z</mi><msup><mn>1</mn> <mn>3</mn> </msup><mspace width="0.166667em"></mspace><mi>z</mi><mn>3</mn><mo>&#8211;</mo><mi>z</mi><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">and the determinant 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>R</mi> <mrow><mo>&#8242;</mo><mo>&#8242;</mo></mrow> </msup></math></span> is <span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></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>z</mi> <mn>3</mn> </msub></math></span> up to a unit of <span class="math"><i>D</i></span> (we recall that a greatest common divisor is always defined up to a unit of the ring <span class="math"><i>D</i></span>):</p>
<p><div class="maple-in">

<tt> LinearAlgebra[Determinant](F[1]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></math></span>

</div><p class="nofirst noindent">Hence, we get 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><mi>t</mi><mrow><mo>(</mo><mi>M</mi><mo>)</mo></mrow><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><mspace width="0.166667em"></mspace><msup><mi>R</mi> <mo>&#8242;</mo> </msup><mrow><mo>)</mo></mrow></mrow></math></span>. Let us complete the matrix <span class="math"><i>R</i></span> to a square matrix over <span class="math"><i>D</i></span> whose determinant is <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> <mn>3</mn> </msub></math></span>:</p>
<p><div class="maple-in">

<tt> C:=LinBose2(R, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow xmlns:xlink="http://www.w3.org/1999/xlink"><mi>C</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><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><mtd><mn>0</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></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>2</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>+</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msub><mi>z</mi> <mn>1</mn> </msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><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></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p><div class="maple-in">

<tt> LinearAlgebra[Determinant](C);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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> <mn>3</mn> </msub></math></span>

</div>
<h2 id="uid279">9.6. (Weakly) coprime factorizations of rational transfer matrices</h2>
<p>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>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>:</p>
<p><div class="maple-in">

<tt> var:=[z[1],z[2],z[3]];</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>v</mi><mi>a</mi><mi>r</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><msub><mi>z</mi> <mn>1</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>2</mn> </msub><mo>,</mo><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We consider the rational transfer matrix defined in Example <a href="#uid229">17</a>, namely:</p>
<p><div class="maple-in">

<tt> P:=Matrix(&lt;(z[1]^2*z[2]^2+1)/(z[1]*z[2]^2*z[3]),(z[1]^2*z[3]+1)/(z[1]*z[2]^2*z[3]) &gt;);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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></mrow> <mrow><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></mfrac></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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><mo>+</mo><mn>1</mn></mrow> <mrow><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></mfrac></mstyle></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Cleaning the denominators of <span class="math"><i>P</i></span>, we obtain the fractional representation <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><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> of <span class="math"><i>P</i></span>, where the matrices <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>P</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>2</mn></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>N</mi> <mi>P</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span> are defined by:</p>
<p><div class="maple-in">

<tt> D_P:=LinearAlgebra[ScalarMatrix](DenomOf(P),2,2);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>P</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><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><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><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></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent"><div class="maple-in">

<tt> N_P:=simplify(D_P.P);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>P</mi><mo>:</mo><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">Let us 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"><mrow><mi>Q</mi><mo>=</mo><mo>(</mo></mrow><msub><mi>D</mi> <mi>P</mi> </msub><mspace width="1.em"></mspace><mo>&#8211;</mo><msub><mi>N</mi> <mi>P</mi> </msub><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span>, namely:</p>
<p><div class="maple-in">

<tt> Q:=Matrix([D_P, -N_P]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><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><mtd><mn>0</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></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><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><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><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">The set of the maximal minors of <span class="math"><i>Q</i></span> is defined by:</p>
<p><div class="maple-in">

<tt> m1:=MaxMinors(Q);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>m</mi><mn>1</mn><mo>:</mo><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>3</mn> <mn>2</mn> </msubsup><mo>,</mo><mspace width="0.166667em"></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><mspace width="0.166667em"></mspace><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><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo><mo>,</mo><mspace width="0.166667em"></mspace><mo>&#8211;</mo><mo>(</mo><mo>&#8211;</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>&#8211;</mo><mn>1</mn><mo>)</mo><mspace width="0.166667em"></mspace></mrow><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>

</div><p class="nofirst noindent">The greatest common divisor of the maximal minors of <span class="math"><i>Q</i></span> is:</p>
<p><div class="maple-in">

<tt> d:={gcd(m1[1],m1[2]),gcd(m1[1],m1[3]),gcd(m1[2],m1[3])};</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>=</mo><mo>{</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><mo>}</mo></mrow></math></span>

</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"><mi>P</mi><mo>=</mo><msubsup><mi>D</mi> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup><mspace width="0.166667em"></mspace><msub><mi>N</mi> <mi>P</mi> </msub></mrow></math></span> is not a weakly left-coprime factorization of <span class="math"><i>P</i></span>.
Let us check whether or not the rational transfer matrix <span class="math"><i>P</i></span> admits a weakly left-coprime factorization and,
if so, compute one:</p>
<p><div class="maple-in">

<tt> WLCF:=WLCFactorization(P,var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>W</mi><mi>L</mi><mi>C</mi><mi>F</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><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><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><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><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><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><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>5</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>3</mn> </msubsup></mrow></mtd></mtr><mtr><mtd><mrow><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">We obtain that <span class="math"><i>P</i></span> admits the weakly left-coprime factorization 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>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></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>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>2</mn></mrow> </msup></mrow></math></span> is the first matrix given in the previous output 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>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span> is the second one. In particular, 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><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is equal to <span class="math"><i>P</i></span>:</p>
<p><div class="maple-in">

<tt> LinearAlgebra[MatrixInverse](WLCF[1]).WLCF[2]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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></mrow> <mrow><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></mfrac></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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><mo>+</mo><mn>1</mn></mrow> <mrow><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></mfrac></mstyle></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Moreover, 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"><mrow><mi>R</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo><mo>&#8712;</mo></mrow><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>3</mn></mrow> </msup></mrow></math></span>, namely,</p>
<p><div class="maple-in">

<tt> R:=Matrix([WLCF[1],-WLCF[2]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><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><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><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><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>5</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mrow></mtd></mtr><mtr><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><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced></mrow></math></span>

</div><p class="nofirst noindent">then, the set of the maximal minors of <span class="math"><i>R</i></span> is defined by</p>
<p><div class="maple-in">

<tt> m2:=MaxMinors(R);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>m</mi><mn>2</mn><mo>:</mo><mo>=</mo><mo>[</mo></mrow><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><mo>,</mo><mspace width="0.166667em"></mspace><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><mo>&#8211;</mo><mn>1</mn><mo>,</mo><mspace width="0.166667em"></mspace><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></math></span>

</div><p class="nofirst noindent">and the greatest common divisor of the maximal minors of <span class="math"><i>R</i></span> is then equal to 1 as</p>
<p><div class="maple-in">

<tt> {gcd(m2[1],m2[2]),gcd(m2[1],m2[3]),gcd(m2[2],m2[3])};</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mo>}</mo></mrow></math></span>

</div><p class="nofirst noindent">and thus, <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>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is a weakly left-coprime factorization of <span class="math"><i>P</i></span>. Let us check whether or not the transfer matrix <span class="math"><i>P</i></span> admits a left-coprime factorization:</p>
<p><div class="maple-in">

<tt> LCF:=LCFactorization(P,var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>L</mi><mi>C</mi><mi>F</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><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><mo>&#8211;</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>+</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>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><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><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>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><mrow><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><msub><mi>z</mi> <mn>3</mn> </msub><mrow><mo>&#8211;</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>&#8211;</mo><msubsup><mi>z</mi> <mn>1</mn> <mn>4</mn> </msubsup><mspace width="0.166667em"></mspace><msub><mi>z</mi> <mn>3</mn> </msub><mspace width="0.166667em"></mspace><msubsup><mi>z</mi> <mn>2</mn> <mn>2</mn> </msubsup><mo>&#8211;</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent"><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>P</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><msup><mo>)</mo> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msup><mspace width="0.166667em"></mspace><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup></mrow></math></span> is a left-coprime factorization
of <span class="math"><i>P</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>R</mi><mo>=</mo><mo>(</mo></mrow><msubsup><mi>D</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mspace width="1.em"></mspace><mo>&#8211;</mo><msubsup><mi>N</mi> <mi>P</mi> <mo>&#8242;</mo> </msubsup><mrow><mo>)</mo></mrow></mrow></math></span> admits the following right-inverse over <span class="math"><i>D</i></span>:</p>
<p class="nofirst noindent"><div class="maple-in">

<tt> Involutive[PolRightInverse](R,var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><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></mtd><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">A weakly right-coprime factorization of <span class="math"><i>P</i></span> can be obtained in a similar way:</p>
<p><div class="maple-in">

<tt> WRC:=WRCFactorization(P, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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>W</mi><mi>R</mi><mi>C</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced open="[" close="]"><mtable><mtr><mtd><mrow><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></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</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"><msub><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>&#8712;</mo><msup><mi>D</mi> <mrow><mn>2</mn><mo>×</mo><mn>1</mn></mrow> </msup></mrow></math></span> the first matrix of the previous output 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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mo>&#8712;</mo><mi>D</mi></mrow></math></span> the second one, then we can 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"><mi>P</mi><mo>=</mo><msub><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span>:</p>
<p><div class="maple-in">

<tt> simplify(WRC[1].MatrixInverse(WRC[2]));</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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></mrow> <mrow><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></mfrac></mstyle></mtd></mtr><mtr><mtd><mstyle scriptlevel="0" displaystyle="true"><mfrac><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><mo>+</mo><mn>1</mn></mrow> <mrow><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></mfrac></mstyle></mtd></mtr></mtable></mfenced></math></span>

</div><p class="nofirst noindent">Moreover, 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"><mover accent="true"><mi>R</mi> <mo>&#732;</mo></mover><mrow><mo>=</mo><mo>(</mo></mrow><msubsup><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><mspace width="1.em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mi>T</mi> </msubsup><msup><mo>)</mo> <mi>T</mi> </msup></mrow></math></span>, namely,</p>
<p><div class="maple-in">

<tt> Rtilde:=Matrix([[WRC[1][1,1]],[WRC[1][2,1]],[WRC[2][1,1]]]);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><mrow><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn> </msup><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>2</mn> </msub></mrow> <mn>2</mn> </msup><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn> </msup><msub><mi mathvariant="italic">z</mi> <mn>3</mn> </msub><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>2</mn> </msub></mrow> <mn>2</mn> </msup><msub><mi mathvariant="italic">z</mi> <mn>3</mn> </msub></mrow></mtd></mtr></mtable></mfenced></math></span>
</div><p class="nofirst noindent">the maximal minors of <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>&#732;</mo></mover></math></span> are then defined by</p>
<p><div class="maple-in">

<tt> m3:=MaxMinors(Rtilde);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">
<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><mrow><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn> </msup><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>2</mn> </msub></mrow> <mn>2</mn> </msup><mo>+</mo><mn>1</mn><mo>,</mo><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub></mrow> <mn>2</mn> </msup><msub><mi mathvariant="italic">z</mi> <mn>3</mn> </msub><mo>+</mo><mn>1</mn><mo>,</mo><msub><mi mathvariant="italic">z</mi> <mn>1</mn> </msub><mspace width="0.166667em"></mspace><msup><mrow><msub><mi mathvariant="italic">z</mi> <mn>2</mn> </msub></mrow> <mn>2</mn> </msup><msub><mi mathvariant="italic">z</mi> <mn>3</mn> </msub><mrow><mo>]</mo></mrow></mrow></math></span>
</div><p class="nofirst noindent">and their greatest common divisor is:</p>
<p><div class="maple-in">

<tt> {gcd(m3[1],m3[2]),gcd(m3[1],m3[3]),gcd(m3[2],m3[3])};</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay ">
<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="{" close="}"><mn>1</mn></mfenced></math></span>
</div><p class="nofirst noindent">Therefore, <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><mover accent="true"><mi>N</mi> <mo>&#732;</mo></mover> <mi>P</mi> </msub><mspace width="0.166667em"></mspace><msubsup><mover accent="true"><mi>D</mi> <mo>&#732;</mo></mover> <mi>P</mi> <mrow><mo>&#8211;</mo><mn>1</mn></mrow> </msubsup></mrow></math></span> is a weakly right-coprime factorization of <span class="math"><i>P</i></span>. Let us check whether or not <span class="math"><i>P</i></span> admits a right-coprime factorization:</p>
<p><div class="maple-in">

<tt> RC:=RCFactorization(P, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><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><mi>C</mi><mo>:</mo><mo>=</mo><mo>[</mo></mrow><mfenced separators="" open="[" close="]"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mspace width="0.166667em"></mspace><mfenced open="[" close="]"><mtable><mtr><mtd><mrow><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></mtable></mfenced><mrow><mo>]</mo></mrow></mrow></math></span>

</div><p class="nofirst noindent">Hence, <span class="math"><i>P</i></span> admits a right-coprime factorization of <span class="math"><i>P</i></span>. We can finally check that last point as follows:</p>
<p><div class="maple-in">

<tt> Matrix(&lt;op(RC)&gt;);IsUnimod(%, var);Involutive[PolLeftInverse](%%, var);</tt>
</div></p>
<p></p>
<div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" separators="" open="[" close="]"><mtable><mtr><mtd><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></mrow></mtd></mtr><mtr><mtd><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><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><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></mtable></mfenced></math></span>

</div><div class="maple-out hc mathdisplay "><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><mi>r</mi><mi>u</mi><mi>e</mi></mrow></math></span>

</div><div class="maple-out hc mathdisplay "><span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mfenced xmlns:xlink="http://www.w3.org/1999/xlink" open="[" close="]"><mtable><mtr><mtd columnalign="right"><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></mrow></mtd><mtd><msubsup><mi>z</mi> <mn>1</mn> <mn>3</mn> </msubsup></mtd></mtr></mtable></mfenced></math></span>

</div>
<h2 id="uid280">9.7. Decomposition of multidimensional linear systems</h2>
<p>We refer the reader to <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> for numerous examples of decomposition of classical systems
of partial differential equations and of differential time-delay equations appearing in mathematical physics and
control theory and for a description of the package <span class="smallcap">Morphisms</span> (<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>) as well as a library of examples.</p>
<!--PASS THROUGH Bibliography--><p class="noindent nofirst" id="bid39">[1] 
M. Amidou, I. Yengui, `` An algorithm for unimodular
completion over Laurent polynomial rings´´, preprint 2006, private communication.
</p><p class="noindent nofirst" id="bid1">[2] 
J.  E. Bjork, <i>Rings of Differential Operators</i>, North Holland, 1979.
</p><p class="noindent nofirst" id="bid19">[3]  Y. A. Blinkov, C. F. Cid, V. P. Gerdt,
W. Plesken, D. Robertz,
<i>The MAPLE Package ``Janet´´: I. Polynomial Systems.</i>
In the Proccedings of <i>Computer Algebra in Scientific Computing CASC 2003</i>,
edited by
V. G. Ganzha, E. W. Mayr, E. V. Vorozhtsov,
31-40. Also available with the package from <tt>http://wwwb.math.rwth-aachen.de/Janet</tt>.
</p><p class="noindent nofirst" id="bid44">[4] 
F. Chyzak, A. Quadrat, D. Robertz, <span class="smallcap">OreModules</span> project, directly available from <tt>http://wwwb.math.rwth-aachen.de/OreModules</tt>.
</p><p class="noindent nofirst" id="bid8">[5] 
F. Chyzak, A. Quadrat, D. Robertz, ``Effective algorithms for parametrizing linear control systems
over Ore algebras´´, <i>Appl. Algebra Engrg. Comm. Comput.</i>, 16 (2005), 319-376.
</p><p class="noindent nofirst" id="bid9">[6] 
F. Chyzak, A. Quadrat, D. Robertz, ``<span class="smallcap">OreModules</span>: A symbolic package for the study of multidimensional linear systems", in the book <i>Applications of Time-Delay Systems</i>,
J. Chiasson and J.-J. Loiseau (eds.), LNCIS 352, Springer, 2007, to appear.
</p><p class="noindent nofirst" id="bid58">[7] 
R. F. Curtain, H. Zwart, <i>An Introduction to Infinite-Dimensional Linear Systems Theory</i>, Texts in Applied Mathematics, vol. 21, Springer, 1991.
</p><p class="noindent nofirst" id="bid60">[8] 
K. Eriksson, D. Estep, P. Hansbo, C. Johnson,
<i>Computational Differential Equations</i>, Cambridge University Press, 1996.
</p><p class="noindent nofirst" id="bid35">[9] 
T. Cluzeau, A. Quadrat, ``Using morphism computations for factoring and decomposition general linear functional systems´´, proceedings of <i>MTNS06</i>, Kyoto (Japan), 20-24/07/06, INRIA Report RR-5942, <tt>www-sop.inria.fr/apics/personnel/Alban.Quadrat/index.html</tt>.
</p><p class="noindent nofirst" id="bid36">[10] 
T. Cluzeau, A. Quadrat, ``<span class="smallcap">Morphisms</span>: A homological algebra package for factoring
and decomposing linear functional systems´´, submitted for publication, 2007.
</p><p class="noindent nofirst" id="bid18">[11] 
D. Eisenbud, <i>Commutative Algebra with a View Toward Algebraic Geometry</i>, Graduate Texts in
Mathematics 150, Springer-Verlag, 1994.
</p><p class="noindent nofirst" id="bid61">[12] 
J. Evers, ``Implementation of the Quillen-Suslin theorem in <span class="smallcap">OreModules</span>´´, Internship at INRIA Sophia Antipolis (06-08/2005) under the supervision of A. Quadrat.
</p><p class="noindent nofirst" id="bid29">[13] 
A. Fabia&#324;ska, <span class="smallcap">QuillenSuslin</span> project: A package for computing bases of free modules over commutative polynomial rings, <tt>http://wwwb.math.rwth-aachen.de/QuillenSuslin</tt>.
</p><p class="noindent nofirst" id="bid65">[14] 
A. Fabia&#324;ska, A. Quadrat, ``Flat multidimensional linear systems with constant coefficients are equivalent to controllable 1-D linear systems´´, proceedings of <i>MTNS 2006</i>, Kyoto (Japan), 24-28/07/06.
</p><p class="noindent nofirst" id="bid21">[15] 
N. Fitchas, A. Galligo, ``Nullstellensatz effectif et conjecture de Serre (Théorème de Quillen-Suslin)
pour le calcul formel´´, <i>Math. Nachr.</i>, 149 (1990), 231-253.
</p><p class="noindent nofirst" id="bid53">[16] 
M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``Flatness and defect of
nonlinear systems: introductory theory and examples´´, <i>Int. J. Control</i>, 61 (1995), 1327-1361.
</p><p class="noindent nofirst" id="bid54">[17] 
M. Fliess, J. Lévine, P. Martin, P. Rouchon, ``A Lie-Bäcklund approach to
equivalence and flatness of nonlinear systems´´, <i>IEEE Trans. Automatic
Control</i>, 40 (1999), 922-937.
</p><p class="noindent nofirst" id="bid56">[18] 
M. Fliess, H. Mounier, ``Controllability and observability of linear delay
systems: an algebraic approach´´, <i>ESAIM: Control, Optimisation and
Calculus of Variations</i>, 3 (1998), 301-314.
</p><p class="noindent nofirst" id="bid22">[19] 
J. Gago-Vargas, ``Constructions 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>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>: applications to
K-theory´´, <i>Journal of Pure and Applied Algebra</i>, 171 (2002), 185-196.
</p><p class="noindent nofirst" id="bid20">[20] 
G.-M. ÊGreuel, G. Pfister, <i>A Singular Introduction to Commutative Algebra</i>,
Springer, 2002.
</p><p class="noindent nofirst" id="bid2">[21] 
M. Kashiwara, <i>Algebraic Study of Systems of Partial Differential Equations</i>,
Master´s Thesis, Tokyo University 1970, English translation, Société Mathématique
de France, Mémoires 63, 1995.
</p><p class="noindent nofirst" id="bid63">[22] 
H. Kwakernaak, R. Sivan, <i>Linear Optimal
Control Systems</i>, Wiley-Interscience, 1972.
</p><p class="noindent nofirst" id="bid23">[23] 
R. C. Laubenbacher, C. J. Woodburn, ``A new algorithm for
the Quillen-Suslin Theorem´´, <i>Contributions to Algebra and Geometrie</i>, 41 (2000), 23-31.
</p><p class="noindent nofirst" id="bid16">[24] 
T. Y. Lam, <i>Serre´s Conjecture</i>, Lecture Notes in Mathematics 635,
Springer Verlag, 1978.
</p><p class="noindent nofirst" id="bid17">[25] 
T. Y. Lam, <i>Serre´s Problem on projective Modules</i>, Springer Monograph in Mathematics,
Springer Verlag, 2006.
</p><p class="noindent nofirst" id="bid30">[26] 
Z. Lin, N. K. Bose, ``A generalization of Serre´s conjecture and related issues´´, <i>Linear Algebra and Its Applications</i>, 338 (2001), 125-138.
</p><p class="noindent nofirst" id="bid24">[27] 
A. Logar, B. Sturmfels, ``Algorithms for the Quillen-Suslin theorem´´, <i>Journal of Algebra</i>, 145 (1992), 231-239.
</p><p class="noindent nofirst" id="bid57">[28] 
H. Logemann, ``On the transfer matrix of a neutral system: characterizations of exponential
stability in input-output terms´´, <i>Systems &amp; Control Letters</i>, 9 (1987), 393-400.
</p><p class="noindent nofirst" id="bid25">[29] 
H. Lombardi, I. Yengui, ``Suslin´s algorithms for reduction of unimodular
rows´´, <i>Journal of Symbolic Computation</i>, 39 (2005), 707-717.
</p><p class="noindent nofirst" id="bid3">[30] 
B. Malgrange, ``Systèmes à coefficients constants´´, <i>Séminaire Bourbaki</i>
1962/63, 1-11.
</p><p class="noindent nofirst" id="bid0">[31] 
G. Monge, ``Supplément où l´on fait voir que les équations aux différences ordinaires
pour lesquelles les conditions d´intégrabilité ne sont pas satisfaites sont susceptibles d´une
véritable intégration´´, <i>Mémoire Académie des Sciences</i>, 1784, 502-576.
</p><p class="noindent nofirst" id="bid40">[32] 
H. Mounier, <i>Propriétés structurelles des systèmes linéaires à
retards: aspects théoriques et pratiques</i>, PhD thesis, University Paris XI, 1995.
</p><p class="noindent nofirst" id="bid41">[33] 
H. Mounier, J. Rudolph, M. Fliess, P. Rouchon, ``Tracking control of a vibrating string with an interior mass viewed as delay system´´, <i>ESAIM COCV</i>, 3 (1998), 315Ð321.
</p><p class="noindent nofirst" id="bid42">[34] 
U. Oberst, ``Multidimensional constant linear systems´´, <i>Acta Appl. Math.</i>, 20 (1990), 1-175.
</p><p class="noindent nofirst" id="bid4">[35] 
V. P. ÊPalamodov, <i>Linear Differential Operators with Constant Coefficients</i>, Springer, 1970.
</p><p class="noindent nofirst" id="bid38">[36] 
H. Park, <i>A Computational Theory of Laurent Polynomial Rings and
Multidimensional FIR Systems</i>, University of Berkeley, 1995.
</p><p class="noindent nofirst" id="bid26">[37] 
H. Park, C. Woodburn, ``An algorithmic proof of Suslin´s stability theorem for
polynomial rings´´, <i>Journal of Algebra</i>, 178 (1995), 277-298.
</p><p class="noindent nofirst" id="bid37">[38] 
H. Park, ``Symbolic computation and signal
processing´´, <i>J. Symb. Computation</i>, 37(2004), 209-226.
</p><p class="noindent nofirst" id="bid62">[39] 
H. Park, ``Generalizations and variations of Quillen-Suslin theorem and their applications´´, workshop <i>Gröbner Bases in Control Theory and Signal Processing</i>, Special semester on Gröbner bases and related methods 2006, University of Linz (Austria), 19/05/06.
</p><p class="noindent nofirst" id="bid66">[40] 
N. Petit, P. Rouchon, ``Dynamics and solutions to some control problems for water-tank systems´´, <i>IEEE Trans. Automatic Control</i>, 47 (2002), 595-609.
</p><p class="noindent nofirst" id="bid10">[41] 
H. K. Pillai, S. Shankar,
``A behavioural approach to control of distributed systems´´,
<i>SIAM Journal on Control and Optimization</i> 37 (1999), 388-408.
</p><p class="noindent nofirst" id="bid11">[42] 
J. W. Polderman, J. C. Willems, <i>Introduction to
Mathematical Systems Theory. A Behavioral Approach</i>, Texts in Applied Mathematics 26, Springer, (1998).
</p><p class="noindent nofirst" id="bid31">[43] 
J.-F. Pommaret, ``Solving Bose conjecture on linear multidimensional systems´´,
<i>Proceedings of European Control Conference (ECC)</i>, Porto (Portugal), 04-07/09/01.
</p><p class="noindent nofirst" id="bid5">[44] 
J.-F. Pommaret, A. Quadrat, ``Generalized Bezout Identity", <i>Appl. Algebra
Engrg. Comm. Comput.</i>, 9 (1998), 91-116.
</p><p class="noindent nofirst" id="bid6">[45] 
J.-F. Pommaret, A. Quadrat, ``Localization and
parametrization of linear multidimensional control systems´´,
<i>Systems &amp; Control Letters</i>, 37 (1999), 247-260.
</p><p class="noindent nofirst" id="bid7">[46] 
J.-F. Pommaret, A. Quadrat, ``Algebraic analysis of
linear multidimensional control systems´´, <i>IMA J. Control and
Optimization</i>, 16 (1999), 275-297.
</p><p class="noindent nofirst" id="bid45">[47] 
J.-F. Pommaret, A. Quadrat, ``Equivalences of linear control systems", proceedings
14 <sup>th</sup> International Symposium on Mathematical Theory of Networks
and Systems (MTNS2000), Perpignan (France), 19-23/06/00. </p><p class="noindent nofirst" id="bid55">[48] 
J.-F. Pommaret, A. Quadrat, ``A differential operator approach to
multidimensional optimal control´´, <i>Int.
J. Control</i>, 77 (2004), 821-836.
</p><p class="noindent nofirst" id="bid64">[49] 
A. Quadrat, ``Extended Bézout identities´´, proceedings of the <i>European Control Conference (ECC)</i>, Porto (Portugal), 04-07/09/01.
</p><p class="noindent nofirst" id="bid32">[50] 
A. Quadrat, ``The fractional representation approach to synthesis problems: an algebraic analysis viewpoint. Part I: (weakly) doubly coprime factorizations, Part II: internal stabilization´´, <i>SIAM J. Control &amp; Optimization</i>, 42 (2003), 266-299, 300-320.
</p><p class="noindent nofirst" id="bid59">[51] 
A. Quadrat, ``On a generalization of the Youla-Ku<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> c </mi> <mo>&#711;</mo></mover></math></span>era parametrization. Part I: The fractional ideal approach to SISO systems´´, <i>Systems &amp; Control Letters</i>, 50 (2003), 135-148.
</p><p class="noindent nofirst" id="bid52">[52] 
A. Quadrat, ``A lattice approach to analysis and synthesis problems´´, <i>Mathematics of Control, Signals, and Systems</i>, 18 (2006), 147-186.
</p><p class="noindent nofirst" id="bid47">[53] 
A. Quadrat, D. Robertz, ``Constructive computation of bases of free modules
over the Weyl algebras´´, <i>INRIA Report</i> 5786 (2005), submitted for publication, <tt>www-sop.inria.fr/apics/personnel/Alban.Quadrat/index.html</tt>.
</p><p class="noindent nofirst" id="bid48">[54] 
A. Quadrat, D. Robertz, ``The Stafford project´´, directly available from <tt>wwwb.math.rwth-aachen.de/OreModules</tt>.
</p><p class="noindent nofirst" id="bid49">[55] 
A. Quadrat, D. Robertz, ``Constructive computation of flat outputs of
multidimensional linear systems´´, proceedings of <i>MTNS06</i>, Kyoto (Japan), 20-24/07/06.
</p><p class="noindent nofirst" id="bid14">[56] 
D. Quillen, ``Projective modules over polynomial rings´´, <i>Invent. Math.</i>, 36 (1976), 167-171.
</p><p class="noindent nofirst" id="bid43">[57] 
J. J. Rotman, <i>An Introduction to Homological Algebra</i>, Academic Press,
(1979).
</p><p class="noindent nofirst" id="bid15">[58] 
A. A. Suslin, ``Projective modules over polynomial rings are free´´, <i>Dokl. Akad. Nauk. S.S.S.R</i>, 229 (1976) (<i>Soviet Math. Dokl.</i>, 17 (1976), 1160-1164).
</p><p class="noindent nofirst" id="bid50">[59] 
L. N. Vaser&#353;tein, A. A. Suslin, ``Serre´s Problem on projective modules over polynomial rings and algebraic <span class="math"><i>K</i></span>-theory´´, <i>Math. USSR Izviestija</i>, 10 (1976), no. 5, 937-1001.
</p><p class="noindent nofirst" id="bid51">[60] 
M. Vidyasagar, <i>Control System Synthesis. A Factorization Approach</i>, MIT
Press, 1985.
</p><p class="noindent nofirst" id="bid27">[61] 
I. Yengui, ``Suslin´s lemma for elimination´´, preprint 2006, private communication.
</p><p class="noindent nofirst" id="bid28">[62] 
D. C. Youla, P. F. Pickel, ``The Quillen-Suslin theorem and the structure of
<span class="math"><i>n</i></span>-dimensional elementary polynomial matrices´´, <i>Trans. Circuits and
Systems</i>, 31 (1984), 513-517.
</p><p class="noindent nofirst" id="bid33">[63] 
M. Wang, D. Feng, ``On Lin-Bose problem´´, <i>Linear Algebra and its Applications</i>, 390 (2004), 279-285.
</p><p class="noindent nofirst" id="bid34">[64] 
M. Wang, C. P. Kwong, ``On multivariate polynomial matrix factorizations problems´´, <i>Math. Control Signals Systems</i>, 17 (2005), 297-311.
</p><p class="noindent nofirst" id="bid12">[65] 
J. Wood, ``Modules and behaviours in <span class="math"><i>n</i></span>D systems theory´´, <i>Multidimensional Systems and Signal Processing</i>, 11 (2000), 11-48.
</p><p class="noindent nofirst" id="bid13">[66] 
E. Zerz, <i>Topics in Multidimensional Linear Systems Theory</i>,
Lecture Notes in Control and Information Sciences 256, Springer, (2000).
</p><p class="noindent nofirst" id="bid46">[67] 
P. Zervos, <i>Le problème de Monge</i>, Mémorial des sciences mathématiques, fasicule LIII, Gauthier-Villars, 1932.
</p>


<h1>Notes</h1><hr /><p class="nofirst noindent" id="note1"><a title="back to text" href="#uid1">Note 1. </a>Lehrstuhl B für Mathematik RWTH - Aachen,
Templergraben 64, 52056 Aachen, Germany
<tt>fabianska@momo.math.rwth-aachen.de</tt></p><hr /><p class="nofirst noindent" id="note2"><a title="back to text" href="#uid2">Note 2. </a>INRIA Sophia Antipolis, APICS project,
2004 Route des Lucioles BP 93,
06902 Sophia Antipolis Cedex, France,
<tt>Alban.Quadrat@sophia.inria.fr</tt></p></body></html>
