]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/CoRN-Procedural/algebra/CPoly_NthCoeff.mma
Procedural: explicit flavour specification for constants is now working
[helm.git] / helm / software / matita / contribs / CoRN-Procedural / algebra / CPoly_NthCoeff.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_NthCoeff.v,v 1.6 2004/04/23 10:00:53 lcf Exp $ *)
20
21 include "algebra/CPolynomials.ma".
22
23 (*#*
24 * Polynomials: Nth Coefficient
25 %\begin{convention}% Let [R] be a ring and write [RX] for the ring of
26 polynomials over [R].
27 %\end{convention}%
28
29 ** Definitions
30 *)
31
32 (* UNEXPORTED
33 Section NthCoeff_def
34 *)
35
36 alias id "R" = "cic:/CoRN/algebra/CPoly_NthCoeff/NthCoeff_def/R.var".
37
38 (* begin hide *)
39
40 (* NOTATION
41 Notation RX := (cpoly_cring R).
42 *)
43
44 (* end hide *)
45
46 (*#*
47 The [n]-th coefficient of a polynomial. The default value is
48 [Zero:CR] e.g. if the [n] is higher than the length. For the
49 polynomial $a_0 +a_1 X +a_2 X^2 + \cdots + a_n X^n$ #a0 +a1 X +a2 X^2
50 + ... + an X^n#, the [Zero]-th coefficient is $a_0$#a0#, the first
51 is $a_1$#a1# etcetera.  *)
52
53 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff.con" as definition.
54
55 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_strext.con" as lemma.
56
57 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_wd.con" as lemma.
58
59 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_fun.con" as definition.
60
61 (*#*
62 %\begin{shortcoming}%
63 We would like to use [nth_coeff_fun n] all the time.
64 However, Coq's coercion mechanism doesn't support this properly:
65 the term
66 [(nth_coeff_fun n p)] won't get parsed, and has to be written as
67 [((nth_coeff_fun n) p)] instead.
68
69 So, in the names of lemmas, we write [(nth_coeff n p)],
70 which always (e.g. in proofs) can be converted
71 to [((nth_coeff_fun n) p)].
72 %\end{shortcoming}%
73 *)
74
75 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nonConst.con" as definition.
76
77 (*#*
78 The following is probably NOT needed.  These functions are
79 NOT extensional, that is, they are not CSetoid functions.
80 *)
81
82 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ok.con" as definition.
83
84 (* The in_coeff predicate*)
85
86 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/in_coeff.con" as definition.
87
88 (*#*
89 The [cpoly_zero] case should be [c [=] Zero] in order to be extensional.
90 *)
91
92 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_S.con" as lemma.
93
94 (* UNEXPORTED
95 End NthCoeff_def
96 *)
97
98 (* UNEXPORTED
99 Implicit Arguments nth_coeff [R].
100 *)
101
102 (* UNEXPORTED
103 Implicit Arguments nth_coeff_fun [R].
104 *)
105
106 (* UNEXPORTED
107 Hint Resolve nth_coeff_wd: algebra_c.
108 *)
109
110 (* UNEXPORTED
111 Section NthCoeff_props
112 *)
113
114 (*#* ** Properties of [nth_coeff] *)
115
116 alias id "R" = "cic:/CoRN/algebra/CPoly_NthCoeff/NthCoeff_props/R.var".
117
118 (* begin hide *)
119
120 (* NOTATION
121 Notation RX := (cpoly_cring R).
122 *)
123
124 (* end hide *)
125
126 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_zero.con" as lemma.
127
128 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_lin.con" as lemma.
129
130 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_lin.con" as lemma.
131
132 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_c_.con" as lemma.
133
134 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_x_mult.con" as lemma.
135
136 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_x_mult.con" as lemma.
137
138 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_mult_x_.con" as lemma.
139
140 (* UNEXPORTED
141 Hint Resolve nth_coeff_zero coeff_O_lin coeff_Sm_lin coeff_O_c_
142   coeff_O_x_mult coeff_Sm_x_mult coeff_Sm_mult_x_: algebra.
143 *)
144
145 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ap_zero_imp.con" as lemma.
146
147 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_plus.con" as lemma.
148
149 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv.con" as lemma.
150
151 (* UNEXPORTED
152 Hint Resolve nth_coeff_inv: algebra.
153 *)
154
155 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_c_mult_p.con" as lemma.
156
157 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_p_mult_c_.con" as lemma.
158
159 (* UNEXPORTED
160 Hint Resolve nth_coeff_c_mult_p nth_coeff_p_mult_c_ nth_coeff_plus: algebra.
161 *)
162
163 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_complicated.con" as lemma.
164
165 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/all_nth_coeff_eq_imp.con" as lemma.
166
167 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/poly_at_zero.con" as lemma.
168
169 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv'.con" as lemma.
170
171 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_minus.con" as lemma.
172
173 (* UNEXPORTED
174 Hint Resolve nth_coeff_minus: algebra.
175 *)
176
177 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum0.con" as lemma.
178
179 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum.con" as lemma.
180
181 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_eq.con" as lemma.
182
183 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_neq.con" as lemma.
184
185 inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_mult.con" as lemma.
186
187 (* UNEXPORTED
188 End NthCoeff_props
189 *)
190
191 (* UNEXPORTED
192 Hint Resolve nth_coeff_wd: algebra_c.
193 *)
194
195 (* UNEXPORTED
196 Hint Resolve nth_coeff_complicated poly_at_zero nth_coeff_inv: algebra.
197 *)
198
199 (* UNEXPORTED
200 Hint Resolve nth_coeff_inv' nth_coeff_c_mult_p nth_coeff_mult: algebra.
201 *)
202
203 (* UNEXPORTED
204 Hint Resolve nth_coeff_zero nth_coeff_plus nth_coeff_minus: algebra.
205 *)
206
207 (* UNEXPORTED
208 Hint Resolve nth_coeff_nexp_eq nth_coeff_nexp_neq: algebra.
209 *)
210