MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  crre Structured version   Visualization version   GIF version

Theorem crre 15049
Description: The real part of a complex number representation. Definition 10-3.1 of [Gleason] p. 132. (Contributed by NM, 12-May-2005.) (Revised by Mario Carneiro, 7-Nov-2013.)
Assertion
Ref Expression
crre ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = 𝐴)

Proof of Theorem crre
StepHypRef Expression
1 recn 11128 . . . 4 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
2 ax-icn 11097 . . . . 5 i ∈ ℂ
3 recn 11128 . . . . 5 (𝐵 ∈ ℝ → 𝐵 ∈ ℂ)
4 mulcl 11122 . . . . 5 ((i ∈ ℂ ∧ 𝐵 ∈ ℂ) → (i · 𝐵) ∈ ℂ)
52, 3, 4sylancr 588 . . . 4 (𝐵 ∈ ℝ → (i · 𝐵) ∈ ℂ)
6 addcl 11120 . . . 4 ((𝐴 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
71, 5, 6syl2an 597 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
8 reval 15041 . . 3 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
97, 8syl 17 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
10 cjcl 15040 . . . . . 6 ((𝐴 + (i · 𝐵)) ∈ ℂ → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
117, 10syl 17 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
127, 11addcld 11163 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
1312halfcld 12398 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
141adantr 480 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℂ)
15 recl 15045 . . . . . . 7 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
167, 15syl 17 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
179, 16eqeltrrd 2838 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℝ)
18 simpl 482 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℝ)
1917, 18resubcld 11577 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ)
202a1i 11 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → i ∈ ℂ)
213adantl 481 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℂ)
222, 21, 4sylancr 588 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · 𝐵) ∈ ℂ)
237, 11subcld 11504 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
2423halfcld 12398 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
2520, 22, 24subdid 11605 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
2614, 22, 14pnpcand 11541 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = ((i · 𝐵) − 𝐴))
2722, 14, 22pnpcan2d 11542 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) = ((i · 𝐵) − 𝐴))
2826, 27eqtr4d 2775 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))))
2928oveq1d 7383 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3014, 14addcld 11163 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + 𝐴) ∈ ℂ)
317, 11, 30addsubd 11525 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))))
3222, 22addcld 11163 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · 𝐵) + (i · 𝐵)) ∈ ℂ)
3332, 7, 11subsubd 11532 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3429, 31, 333eqtr4d 2782 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
35142timesd 12396 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) = (𝐴 + 𝐴))
3635oveq2d 7384 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)))
37222timesd 12396 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) = ((i · 𝐵) + (i · 𝐵)))
3837oveq1d 7383 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
3934, 36, 383eqtr4d 2782 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
4039oveq1d 7383 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2))
41 2cn 12232 . . . . . . . . . . 11 2 ∈ ℂ
42 mulcl 11122 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ 𝐴 ∈ ℂ) → (2 · 𝐴) ∈ ℂ)
4341, 14, 42sylancr 588 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) ∈ ℂ)
4441a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ∈ ℂ)
45 2ne0 12261 . . . . . . . . . . 11 2 ≠ 0
4645a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ≠ 0)
4712, 43, 44, 46divsubdird 11968 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)))
48 mulcl 11122 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (2 · (i · 𝐵)) ∈ ℂ)
4941, 22, 48sylancr 588 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) ∈ ℂ)
5049, 23, 44, 46divsubdird 11968 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5140, 47, 503eqtr3d 2780 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5214, 44, 46divcan3d 11934 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · 𝐴) / 2) = 𝐴)
5352oveq2d 7384 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴))
5422, 44, 46divcan3d 11934 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) / 2) = (i · 𝐵))
5554oveq1d 7383 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5651, 53, 553eqtr3d 2780 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5756oveq2d 7384 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
5820, 20, 21mulassd 11167 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) = (i · (i · 𝐵)))
5920, 23, 44, 46divassd 11964 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
6058, 59oveq12d 7386 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
6125, 57, 603eqtr4d 2782 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)))
62 ixi 11778 . . . . . . . 8 (i · i) = -1
63 neg1rr 12143 . . . . . . . 8 -1 ∈ ℝ
6462, 63eqeltri 2833 . . . . . . 7 (i · i) ∈ ℝ
65 simpr 484 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℝ)
66 remulcl 11123 . . . . . . 7 (((i · i) ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
6764, 65, 66sylancr 588 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
68 cjth 15038 . . . . . . . . 9 ((𝐴 + (i · 𝐵)) ∈ ℂ → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℝ ∧ (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ))
6968simprd 495 . . . . . . . 8 ((𝐴 + (i · 𝐵)) ∈ ℂ → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
707, 69syl 17 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
7170rehalfcld 12400 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) ∈ ℝ)
7267, 71resubcld 11577 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) ∈ ℝ)
7361, 72eqeltrd 2837 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ)
74 rimul 12148 . . . 4 ((((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ ∧ (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7519, 73, 74syl2anc 585 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7613, 14, 75subeq0d 11512 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) = 𝐴)
779, 76eqtrd 2772 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = 𝐴)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1542  wcel 2114  wne 2933  cfv 6500  (class class class)co 7368  cc 11036  cr 11037  0cc0 11038  1c1 11039  ici 11040   + caddc 11041   · cmul 11043  cmin 11376  -cneg 11377   / cdiv 11806  2c2 12212  ccj 15031  cre 15032
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1912  ax-6 1969  ax-7 2010  ax-8 2116  ax-9 2124  ax-10 2147  ax-11 2163  ax-12 2185  ax-ext 2709  ax-sep 5243  ax-nul 5253  ax-pow 5312  ax-pr 5379  ax-un 7690  ax-resscn 11095  ax-1cn 11096  ax-icn 11097  ax-addcl 11098  ax-addrcl 11099  ax-mulcl 11100  ax-mulrcl 11101  ax-mulcom 11102  ax-addass 11103  ax-mulass 11104  ax-distr 11105  ax-i2m1 11106  ax-1ne0 11107  ax-1rid 11108  ax-rnegex 11109  ax-rrecex 11110  ax-cnre 11111  ax-pre-lttri 11112  ax-pre-lttrn 11113  ax-pre-ltadd 11114  ax-pre-mulgt0 11115
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 849  df-3or 1088  df-3an 1089  df-tru 1545  df-fal 1555  df-ex 1782  df-nf 1786  df-sb 2069  df-mo 2540  df-eu 2570  df-clab 2716  df-cleq 2729  df-clel 2812  df-nfc 2886  df-ne 2934  df-nel 3038  df-ral 3053  df-rex 3063  df-rmo 3352  df-reu 3353  df-rab 3402  df-v 3444  df-sbc 3743  df-csb 3852  df-dif 3906  df-un 3908  df-in 3910  df-ss 3920  df-pss 3923  df-nul 4288  df-if 4482  df-pw 4558  df-sn 4583  df-pr 4585  df-op 4589  df-uni 4866  df-iun 4950  df-br 5101  df-opab 5163  df-mpt 5182  df-tr 5208  df-id 5527  df-eprel 5532  df-po 5540  df-so 5541  df-fr 5585  df-we 5587  df-xp 5638  df-rel 5639  df-cnv 5640  df-co 5641  df-dm 5642  df-rn 5643  df-res 5644  df-ima 5645  df-pred 6267  df-ord 6328  df-on 6329  df-lim 6330  df-suc 6331  df-iota 6456  df-fun 6502  df-fn 6503  df-f 6504  df-f1 6505  df-fo 6506  df-f1o 6507  df-fv 6508  df-riota 7325  df-ov 7371  df-oprab 7372  df-mpo 7373  df-om 7819  df-2nd 7944  df-frecs 8233  df-wrecs 8264  df-recs 8313  df-rdg 8351  df-er 8645  df-en 8896  df-dom 8897  df-sdom 8898  df-pnf 11180  df-mnf 11181  df-xr 11182  df-ltxr 11183  df-le 11184  df-sub 11378  df-neg 11379  df-div 11807  df-nn 12158  df-2 12220  df-cj 15034  df-re 15035
This theorem is referenced by:  crim  15050  replim  15051  mulre  15056  recj  15059  reneg  15060  readd  15061  remullem  15063  rei  15091  crrei  15127  crred  15166  rennim  15174  absreimsq  15227  4sqlem4  16892  2sqlem2  27397  cnre2csqima  34089
  Copyright terms: Public domain W3C validator