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

Theorem crre 15028
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 11107 . . . 4 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
2 ax-icn 11076 . . . . 5 i ∈ ℂ
3 recn 11107 . . . . 5 (𝐵 ∈ ℝ → 𝐵 ∈ ℂ)
4 mulcl 11101 . . . . 5 ((i ∈ ℂ ∧ 𝐵 ∈ ℂ) → (i · 𝐵) ∈ ℂ)
52, 3, 4sylancr 587 . . . 4 (𝐵 ∈ ℝ → (i · 𝐵) ∈ ℂ)
6 addcl 11099 . . . 4 ((𝐴 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
71, 5, 6syl2an 596 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
8 reval 15020 . . 3 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
97, 8syl 17 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
10 cjcl 15019 . . . . . 6 ((𝐴 + (i · 𝐵)) ∈ ℂ → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
117, 10syl 17 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
127, 11addcld 11142 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
1312halfcld 12377 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
141adantr 480 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℂ)
15 recl 15024 . . . . . . 7 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
167, 15syl 17 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
179, 16eqeltrrd 2834 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℝ)
18 simpl 482 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℝ)
1917, 18resubcld 11556 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ)
202a1i 11 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → i ∈ ℂ)
213adantl 481 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℂ)
222, 21, 4sylancr 587 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · 𝐵) ∈ ℂ)
237, 11subcld 11483 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
2423halfcld 12377 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
2520, 22, 24subdid 11584 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
2614, 22, 14pnpcand 11520 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = ((i · 𝐵) − 𝐴))
2722, 14, 22pnpcan2d 11521 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) = ((i · 𝐵) − 𝐴))
2826, 27eqtr4d 2771 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))))
2928oveq1d 7370 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3014, 14addcld 11142 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + 𝐴) ∈ ℂ)
317, 11, 30addsubd 11504 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))))
3222, 22addcld 11142 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · 𝐵) + (i · 𝐵)) ∈ ℂ)
3332, 7, 11subsubd 11511 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3429, 31, 333eqtr4d 2778 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
35142timesd 12375 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) = (𝐴 + 𝐴))
3635oveq2d 7371 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)))
37222timesd 12375 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) = ((i · 𝐵) + (i · 𝐵)))
3837oveq1d 7370 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
3934, 36, 383eqtr4d 2778 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
4039oveq1d 7370 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2))
41 2cn 12211 . . . . . . . . . . 11 2 ∈ ℂ
42 mulcl 11101 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ 𝐴 ∈ ℂ) → (2 · 𝐴) ∈ ℂ)
4341, 14, 42sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) ∈ ℂ)
4441a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ∈ ℂ)
45 2ne0 12240 . . . . . . . . . . 11 2 ≠ 0
4645a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ≠ 0)
4712, 43, 44, 46divsubdird 11947 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)))
48 mulcl 11101 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (2 · (i · 𝐵)) ∈ ℂ)
4941, 22, 48sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) ∈ ℂ)
5049, 23, 44, 46divsubdird 11947 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5140, 47, 503eqtr3d 2776 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5214, 44, 46divcan3d 11913 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · 𝐴) / 2) = 𝐴)
5352oveq2d 7371 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴))
5422, 44, 46divcan3d 11913 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) / 2) = (i · 𝐵))
5554oveq1d 7370 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5651, 53, 553eqtr3d 2776 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5756oveq2d 7371 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
5820, 20, 21mulassd 11146 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) = (i · (i · 𝐵)))
5920, 23, 44, 46divassd 11943 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
6058, 59oveq12d 7373 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
6125, 57, 603eqtr4d 2778 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)))
62 ixi 11757 . . . . . . . 8 (i · i) = -1
63 neg1rr 12122 . . . . . . . 8 -1 ∈ ℝ
6462, 63eqeltri 2829 . . . . . . 7 (i · i) ∈ ℝ
65 simpr 484 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℝ)
66 remulcl 11102 . . . . . . 7 (((i · i) ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
6764, 65, 66sylancr 587 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
68 cjth 15017 . . . . . . . . 9 ((𝐴 + (i · 𝐵)) ∈ ℂ → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℝ ∧ (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ))
6968simprd 495 . . . . . . . 8 ((𝐴 + (i · 𝐵)) ∈ ℂ → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
707, 69syl 17 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
7170rehalfcld 12379 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) ∈ ℝ)
7267, 71resubcld 11556 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) ∈ ℝ)
7361, 72eqeltrd 2833 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ)
74 rimul 12127 . . . 4 ((((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ ∧ (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7519, 73, 74syl2anc 584 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7613, 14, 75subeq0d 11491 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) = 𝐴)
779, 76eqtrd 2768 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = 𝐴)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1541  wcel 2113  wne 2929  cfv 6489  (class class class)co 7355  cc 11015  cr 11016  0cc0 11017  1c1 11018  ici 11019   + caddc 11020   · cmul 11022  cmin 11355  -cneg 11356   / cdiv 11785  2c2 12191  ccj 15010  cre 15011
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2115  ax-9 2123  ax-10 2146  ax-11 2162  ax-12 2182  ax-ext 2705  ax-sep 5238  ax-nul 5248  ax-pow 5307  ax-pr 5374  ax-un 7677  ax-resscn 11074  ax-1cn 11075  ax-icn 11076  ax-addcl 11077  ax-addrcl 11078  ax-mulcl 11079  ax-mulrcl 11080  ax-mulcom 11081  ax-addass 11082  ax-mulass 11083  ax-distr 11084  ax-i2m1 11085  ax-1ne0 11086  ax-1rid 11087  ax-rnegex 11088  ax-rrecex 11089  ax-cnre 11090  ax-pre-lttri 11091  ax-pre-lttrn 11092  ax-pre-ltadd 11093  ax-pre-mulgt0 11094
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1544  df-fal 1554  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2537  df-eu 2566  df-clab 2712  df-cleq 2725  df-clel 2808  df-nfc 2882  df-ne 2930  df-nel 3034  df-ral 3049  df-rex 3058  df-rmo 3347  df-reu 3348  df-rab 3397  df-v 3439  df-sbc 3738  df-csb 3847  df-dif 3901  df-un 3903  df-in 3905  df-ss 3915  df-pss 3918  df-nul 4283  df-if 4477  df-pw 4553  df-sn 4578  df-pr 4580  df-op 4584  df-uni 4861  df-iun 4945  df-br 5096  df-opab 5158  df-mpt 5177  df-tr 5203  df-id 5516  df-eprel 5521  df-po 5529  df-so 5530  df-fr 5574  df-we 5576  df-xp 5627  df-rel 5628  df-cnv 5629  df-co 5630  df-dm 5631  df-rn 5632  df-res 5633  df-ima 5634  df-pred 6256  df-ord 6317  df-on 6318  df-lim 6319  df-suc 6320  df-iota 6445  df-fun 6491  df-fn 6492  df-f 6493  df-f1 6494  df-fo 6495  df-f1o 6496  df-fv 6497  df-riota 7312  df-ov 7358  df-oprab 7359  df-mpo 7360  df-om 7806  df-2nd 7931  df-frecs 8220  df-wrecs 8251  df-recs 8300  df-rdg 8338  df-er 8631  df-en 8880  df-dom 8881  df-sdom 8882  df-pnf 11159  df-mnf 11160  df-xr 11161  df-ltxr 11162  df-le 11163  df-sub 11357  df-neg 11358  df-div 11786  df-nn 12137  df-2 12199  df-cj 15013  df-re 15014
This theorem is referenced by:  crim  15029  replim  15030  mulre  15035  recj  15038  reneg  15039  readd  15040  remullem  15042  rei  15070  crrei  15106  crred  15145  rennim  15153  absreimsq  15206  4sqlem4  16871  2sqlem2  27376  cnre2csqima  33996
  Copyright terms: Public domain W3C validator