]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/CoRN-Procedural/algebra/CPoly_Degree.mma
Procedural: explicit flavour specification for constants is now working
[helm.git] / helm / software / matita / contribs / CoRN-Procedural / algebra / CPoly_Degree.mma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "CoRN.ma".
18
19 (* $Id: CPoly_Degree.v,v 1.5 2004/04/23 10:00:53 lcf Exp $ *)
20
21 include "algebra/CPoly_NthCoeff.ma".
22
23 include "algebra/CFields.ma".
24
25 (*#* *Degrees of Polynomials
26 ** Degrees of polynomials over a ring
27 %\begin{convention}%
28 Let [R] be a ring and write [RX] for the ring of polynomials
29 over [R].
30 %\end{convention}%
31 *)
32
33 (* UNEXPORTED
34 Section Degree_def
35 *)
36
37 alias id "R" = "cic:/CoRN/algebra/CPoly_Degree/Degree_def/R.var".
38
39 (* begin hide *)
40
41 (* NOTATION
42 Notation RX := (cpoly_cring R).
43 *)
44
45 (* end hide *)
46
47 (*#*
48 The length of a polynomial is the number of its coefficients. This is
49 a syntactical property, as the highest coefficient may be [0]. Note that
50 the `zero' polynomial [cpoly_zero] has length [0],
51 a constant polynomial has length [1] and so forth. So the length
52 is always [1] higher than the `degree' (assuming that the highest
53 coefficient is [[#]Zero])!
54 *)
55
56 inline procedural "cic:/CoRN/algebra/CPoly_Degree/lth_of_poly.con" as definition.
57
58 (*#*
59 When dealing with constructive polynomials, notably over the reals or
60 complex numbers, the degree may be unknown, as we can not decide
61 whether the highest coefficient is [[#]Zero]. Hence,
62 degree is a relation between polynomials and natural numbers; if the
63 degree is unknown for polynomial [p], degree(n,p) doesn't hold for
64 any [n].  If we don't know the degree of [p], we may still
65 know it to be below or above a certain number. E.g. for the polynomial
66 $p_0 +p_1 X +\cdots + p_{n-1} X^{n-1}$#p0 +p1 X + ... + p(n-1)
67 X^(n-1)#, if $p_i \mathrel{\#}0$#pi apart from 0#, we can say that the
68 `degree is at least [i]' and if $p_{j+1} = \ldots =p_n =0$#p(j+1)
69 = ... =pn =0# (with [n] the length of the polynomial), we can say
70 that the `degree is at most [j]'.
71 *)
72
73 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le.con" as definition.
74
75 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree.con" as definition.
76
77 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic.con" as definition.
78
79 inline procedural "cic:/CoRN/algebra/CPoly_Degree/odd_cpoly.con" as definition.
80
81 inline procedural "cic:/CoRN/algebra/CPoly_Degree/even_cpoly.con" as definition.
82
83 inline procedural "cic:/CoRN/algebra/CPoly_Degree/regular.con" as definition.
84
85 (* UNEXPORTED
86 End Degree_def
87 *)
88
89 (* UNEXPORTED
90 Implicit Arguments degree_le [R].
91 *)
92
93 (* UNEXPORTED
94 Implicit Arguments degree [R].
95 *)
96
97 (* UNEXPORTED
98 Implicit Arguments monic [R].
99 *)
100
101 (* UNEXPORTED
102 Implicit Arguments lth_of_poly [R].
103 *)
104
105 (* UNEXPORTED
106 Section Degree_props
107 *)
108
109 alias id "R" = "cic:/CoRN/algebra/CPoly_Degree/Degree_props/R.var".
110
111 (* begin hide *)
112
113 (* NOTATION
114 Notation RX := (cpoly_cring R).
115 *)
116
117 (* end hide *)
118
119 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_wd.con" as lemma.
120
121 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_wd.con" as lemma.
122
123 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_wd.con" as lemma.
124
125 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_imp_degree_le.con" as lemma.
126
127 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_c_.con" as lemma.
128
129 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_c_.con" as lemma.
130
131 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_c_one.con" as lemma.
132
133 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_x_.con" as lemma.
134
135 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_x_.con" as lemma.
136
137 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_x_.con" as lemma.
138
139 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mon.con" as lemma.
140
141 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_inv.con" as lemma.
142
143 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_plus.con" as lemma.
144
145 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_minus.con" as lemma.
146
147 inline procedural "cic:/CoRN/algebra/CPoly_Degree/Sum_degree_le.con" as lemma.
148
149 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_inv.con" as lemma.
150
151 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_plus_rht.con" as lemma.
152
153 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_minus_lft.con" as lemma.
154
155 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_plus.con" as lemma.
156
157 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_minus.con" as lemma.
158
159 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mult.con" as lemma.
160
161 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult_aux.con" as lemma.
162
163 (* UNEXPORTED
164 Hint Resolve degree_mult_aux: algebra.
165 *)
166
167 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_mult.con" as lemma.
168
169 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_nexp.con" as lemma.
170
171 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_nexp.con" as lemma.
172
173 inline procedural "cic:/CoRN/algebra/CPoly_Degree/lt_i_lth_of_poly.con" as lemma.
174
175 inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_degree_lth.con" as lemma.
176
177 inline procedural "cic:/CoRN/algebra/CPoly_Degree/Cpoly_ex_degree.con" as lemma.
178
179 inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum''.con" as lemma.
180
181 (* UNEXPORTED
182 Hint Resolve poly_as_sum'': algebra.
183 *)
184
185 inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum'.con" as lemma.
186
187 inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum.con" as lemma.
188
189 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_zero.con" as lemma.
190
191 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_1_imp.con" as lemma.
192
193 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_cpoly_linear.con" as lemma.
194
195 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_cpoly_linear.con" as lemma.
196
197 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_one.con" as lemma.
198
199 inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_apzero.con" as lemma.
200
201 (* UNEXPORTED
202 End Degree_props
203 *)
204
205 (* UNEXPORTED
206 Hint Resolve poly_as_sum'' poly_as_sum' poly_as_sum: algebra.
207 *)
208
209 (* UNEXPORTED
210 Hint Resolve degree_mult_aux: algebra.
211 *)
212
213 (* UNEXPORTED
214 Section degree_props_Field
215 *)
216
217 (*#* ** Degrees of polynomials over a field
218 %\begin{convention}% Let [F] be a field and write [FX] for the ring of
219 polynomials over [F].
220 %\end{convention}%
221 *)
222
223 alias id "F" = "cic:/CoRN/algebra/CPoly_Degree/degree_props_Field/F.var".
224
225 (* begin hide *)
226
227 (* NOTATION
228 Notation FX := (cpoly_cring F).
229 *)
230
231 (* end hide *)
232
233 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult.con" as lemma.
234
235 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_nexp.con" as lemma.
236
237 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mult_imp.con" as lemma.
238
239 inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult_imp.con" as lemma.
240
241 (* UNEXPORTED
242 End degree_props_Field
243 *)
244