1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
19 include "transc/SinCos.ma".
22 Section Properties_of_Pi
25 (*#* printing Pi %\ensuremath{\pi}% #π# *)
27 (*#* **Definition of Pi
29 [Pi] is defined as twice the first positive zero of the cosine. In order to do this, we follow the construction described in Bishop 1969, section 7.
32 inline procedural "cic:/CoRN/transc/Pi/pi_seq.con".
44 inline procedural "cic:/CoRN/transc/Pi/pi_seq_lemma.con".
49 This sequence is nonnegative and the cosine of any number between
50 [Zero] and any of its values is strictly positive; therefore the
51 sequence is strictly increasing.
54 inline procedural "cic:/CoRN/transc/Pi/pi_seq_nonneg.con".
56 inline procedural "cic:/CoRN/transc/Pi/cos_pi_seq_pos.con".
58 inline procedural "cic:/CoRN/transc/Pi/pi_seq_incr.con".
60 (*#* Trivial---but useful---consequences. *)
62 inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_mon.con".
64 inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_nonneg.con".
66 inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_gt_one.con".
68 inline procedural "cic:/CoRN/transc/Pi/cos_pi_seq_mon.con".
72 inline procedural "cic:/CoRN/transc/Pi/pi_seq_gt_one.con".
78 inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd.con".
80 inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd'.con".
82 inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd''.con".
86 (*#* An auxiliary result. *)
88 inline procedural "cic:/CoRN/transc/Pi/Sin_One_pos.con".
90 (*#* We can now prove that this is a Cauchy sequence. We define [Pi] as
94 inline procedural "cic:/CoRN/transc/Pi/pi_seq_Cauchy.con".
96 inline procedural "cic:/CoRN/transc/Pi/Pi.con".
99 For $x\in[0,\frac{\pi}2)$#x∈[0,π/2)#, [(Cos x) [>] 0];
100 $\cos(\frac{pi}2)=0$#cos(π/2)=0#.
103 inline procedural "cic:/CoRN/transc/Pi/pos_cos.con".
105 inline procedural "cic:/CoRN/transc/Pi/Cos_HalfPi.con".
107 (*#* Convergence to [Pi [/] Two] is increasing; therefore, [Pi] is positive. *)
109 inline procedural "cic:/CoRN/transc/Pi/HalfPi_gt_pi_seq.con".
111 inline procedural "cic:/CoRN/transc/Pi/pos_Pi.con".
118 Hint Resolve Cos_HalfPi: algebra.
125 (*#* **Properties of Pi
127 The following are trivial ordering properties of multiples of [Pi]
128 that will be used so often that it is convenient to state as lemmas;
129 also, we define a hint database that automatically tries to apply this
130 lemmas, to make proof development easier.
132 A summary of what is being proved is simply:
134 [--]Pi [<] [--]Pi[/]Two [<] [--] Pi[/]Four [<] Zero [<] Pi[/]Four [<] Pi[/]Two [<] Pi
137 [PiSolve] will prove any of these inequalities.
140 inline procedural "cic:/CoRN/transc/Pi/pos_HalfPi.con".
142 inline procedural "cic:/CoRN/transc/Pi/pos_QuarterPi.con".
144 inline procedural "cic:/CoRN/transc/Pi/QuarterPi_less_HalfPi.con".
146 inline procedural "cic:/CoRN/transc/Pi/HalfPi_less_Pi.con".
148 inline procedural "cic:/CoRN/transc/Pi/QuarterPi_less_Pi.con".
150 inline procedural "cic:/CoRN/transc/Pi/neg_invPi.con".
152 inline procedural "cic:/CoRN/transc/Pi/neg_invHalfPi.con".
154 inline procedural "cic:/CoRN/transc/Pi/neg_invQuarterPi.con".
156 inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_invQuarterPi.con".
158 inline procedural "cic:/CoRN/transc/Pi/invPi_less_invHalfPi.con".
160 inline procedural "cic:/CoRN/transc/Pi/invPi_less_invQuarterPi.con".
162 inline procedural "cic:/CoRN/transc/Pi/invPi_less_Pi.con".
164 inline procedural "cic:/CoRN/transc/Pi/invPi_less_HalfPi.con".
166 inline procedural "cic:/CoRN/transc/Pi/invPi_less_QuarterPi.con".
168 inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_Pi.con".
170 inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_HalfPi.con".
172 inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_QuarterPi.con".
174 inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_Pi.con".
176 inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_HalfPi.con".
178 inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_QuarterPi.con".
185 Hint Resolve pos_Pi pos_HalfPi pos_QuarterPi QuarterPi_less_HalfPi
186 HalfPi_less_Pi QuarterPi_less_Pi neg_invPi neg_invHalfPi neg_invQuarterPi
187 invHalfPi_less_invQuarterPi invPi_less_invHalfPi invPi_less_invQuarterPi
188 invPi_less_Pi invPi_less_HalfPi invPi_less_QuarterPi invHalfPi_less_Pi
189 invHalfPi_less_HalfPi invHalfPi_less_QuarterPi invQuarterPi_less_Pi
190 invQuarterPi_less_HalfPi invQuarterPi_less_QuarterPi: piorder.
196 Ltac PiSolve := try apply less_leEq; auto with piorder.
207 We now move back to trigonometric identities: sine, cosine and tangent of
211 inline procedural "cic:/CoRN/transc/Pi/Cos_double.con".
213 inline procedural "cic:/CoRN/transc/Pi/Sin_double.con".
215 inline procedural "cic:/CoRN/transc/Pi/Tan_double.con".
219 inline procedural "cic:/CoRN/transc/Pi/sqrt_lemma.con".
223 (*#* Value of trigonometric functions at [Pi[/]Four]. *)
225 inline procedural "cic:/CoRN/transc/Pi/Cos_QuarterPi.con".
227 inline procedural "cic:/CoRN/transc/Pi/Sin_QuarterPi.con".
230 Hint Resolve Sin_QuarterPi Cos_QuarterPi: algebra.
237 inline procedural "cic:/CoRN/transc/Pi/Tan_QuarterPi.con".
239 (*#* Shifting sine and cosine by [Pi[/]Two] and [Pi]. *)
241 inline procedural "cic:/CoRN/transc/Pi/Sin_HalfPi.con".
244 Hint Resolve Sin_HalfPi: algebra.
247 inline procedural "cic:/CoRN/transc/Pi/Sin_plus_HalfPi.con".
249 inline procedural "cic:/CoRN/transc/Pi/Sin_HalfPi_minus.con".
251 inline procedural "cic:/CoRN/transc/Pi/Cos_plus_HalfPi.con".
253 inline procedural "cic:/CoRN/transc/Pi/Cos_HalfPi_minus.con".
255 inline procedural "cic:/CoRN/transc/Pi/Sin_Pi.con".
257 inline procedural "cic:/CoRN/transc/Pi/Cos_Pi.con".
259 inline procedural "cic:/CoRN/transc/Pi/Sin_plus_Pi.con".
261 inline procedural "cic:/CoRN/transc/Pi/Cos_plus_Pi.con".
264 Hint Resolve Sin_plus_Pi Cos_plus_Pi: algebra.
267 (*#* Sine and cosine have period [Two Pi], tangent has period [Pi]. *)
269 inline procedural "cic:/CoRN/transc/Pi/Sin_periodic.con".
271 inline procedural "cic:/CoRN/transc/Pi/Cos_periodic.con".
273 inline procedural "cic:/CoRN/transc/Pi/Tan_periodic.con".
280 Hint Resolve Cos_double Sin_double Tan_double Cos_QuarterPi Sin_QuarterPi
281 Tan_QuarterPi Sin_Pi Cos_Pi Sin_HalfPi Sin_plus_HalfPi Sin_HalfPi_minus
282 Cos_plus_HalfPi Cos_HalfPi_minus Sin_plus_Pi Cos_plus_Pi Sin_periodic
283 Cos_periodic Tan_periodic: algebra.