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

Theorem crre 15056
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 11134 . . . 4 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
2 ax-icn 11103 . . . . 5 i ∈ ℂ
3 recn 11134 . . . . 5 (𝐵 ∈ ℝ → 𝐵 ∈ ℂ)
4 mulcl 11128 . . . . 5 ((i ∈ ℂ ∧ 𝐵 ∈ ℂ) → (i · 𝐵) ∈ ℂ)
52, 3, 4sylancr 587 . . . 4 (𝐵 ∈ ℝ → (i · 𝐵) ∈ ℂ)
6 addcl 11126 . . . 4 ((𝐴 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
71, 5, 6syl2an 596 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
8 reval 15048 . . 3 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
97, 8syl 17 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
10 cjcl 15047 . . . . . 6 ((𝐴 + (i · 𝐵)) ∈ ℂ → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
117, 10syl 17 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
127, 11addcld 11169 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
1312halfcld 12403 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
141adantr 480 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℂ)
15 recl 15052 . . . . . . 7 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
167, 15syl 17 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
179, 16eqeltrrd 2829 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℝ)
18 simpl 482 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℝ)
1917, 18resubcld 11582 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ)
202a1i 11 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → i ∈ ℂ)
213adantl 481 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℂ)
222, 21, 4sylancr 587 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · 𝐵) ∈ ℂ)
237, 11subcld 11509 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
2423halfcld 12403 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
2520, 22, 24subdid 11610 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
2614, 22, 14pnpcand 11546 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = ((i · 𝐵) − 𝐴))
2722, 14, 22pnpcan2d 11547 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) = ((i · 𝐵) − 𝐴))
2826, 27eqtr4d 2767 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))))
2928oveq1d 7384 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3014, 14addcld 11169 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + 𝐴) ∈ ℂ)
317, 11, 30addsubd 11530 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))))
3222, 22addcld 11169 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · 𝐵) + (i · 𝐵)) ∈ ℂ)
3332, 7, 11subsubd 11537 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3429, 31, 333eqtr4d 2774 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
35142timesd 12401 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) = (𝐴 + 𝐴))
3635oveq2d 7385 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)))
37222timesd 12401 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) = ((i · 𝐵) + (i · 𝐵)))
3837oveq1d 7384 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
3934, 36, 383eqtr4d 2774 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
4039oveq1d 7384 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2))
41 2cn 12237 . . . . . . . . . . 11 2 ∈ ℂ
42 mulcl 11128 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ 𝐴 ∈ ℂ) → (2 · 𝐴) ∈ ℂ)
4341, 14, 42sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) ∈ ℂ)
4441a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ∈ ℂ)
45 2ne0 12266 . . . . . . . . . . 11 2 ≠ 0
4645a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ≠ 0)
4712, 43, 44, 46divsubdird 11973 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)))
48 mulcl 11128 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (2 · (i · 𝐵)) ∈ ℂ)
4941, 22, 48sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) ∈ ℂ)
5049, 23, 44, 46divsubdird 11973 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5140, 47, 503eqtr3d 2772 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5214, 44, 46divcan3d 11939 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · 𝐴) / 2) = 𝐴)
5352oveq2d 7385 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴))
5422, 44, 46divcan3d 11939 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) / 2) = (i · 𝐵))
5554oveq1d 7384 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5651, 53, 553eqtr3d 2772 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5756oveq2d 7385 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
5820, 20, 21mulassd 11173 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) = (i · (i · 𝐵)))
5920, 23, 44, 46divassd 11969 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
6058, 59oveq12d 7387 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
6125, 57, 603eqtr4d 2774 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)))
62 ixi 11783 . . . . . . . 8 (i · i) = -1
63 neg1rr 12148 . . . . . . . 8 -1 ∈ ℝ
6462, 63eqeltri 2824 . . . . . . 7 (i · i) ∈ ℝ
65 simpr 484 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℝ)
66 remulcl 11129 . . . . . . 7 (((i · i) ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
6764, 65, 66sylancr 587 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
68 cjth 15045 . . . . . . . . 9 ((𝐴 + (i · 𝐵)) ∈ ℂ → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℝ ∧ (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ))
6968simprd 495 . . . . . . . 8 ((𝐴 + (i · 𝐵)) ∈ ℂ → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
707, 69syl 17 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
7170rehalfcld 12405 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) ∈ ℝ)
7267, 71resubcld 11582 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) ∈ ℝ)
7361, 72eqeltrd 2828 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ)
74 rimul 12153 . . . 4 ((((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ ∧ (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7519, 73, 74syl2anc 584 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7613, 14, 75subeq0d 11517 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) = 𝐴)
779, 76eqtrd 2764 1 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = 𝐴)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1540  wcel 2109  wne 2925  cfv 6499  (class class class)co 7369  cc 11042  cr 11043  0cc0 11044  1c1 11045  ici 11046   + caddc 11047   · cmul 11049  cmin 11381  -cneg 11382   / cdiv 11811  2c2 12217  ccj 15038  cre 15039
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2008  ax-8 2111  ax-9 2119  ax-10 2142  ax-11 2158  ax-12 2178  ax-ext 2701  ax-sep 5246  ax-nul 5256  ax-pow 5315  ax-pr 5382  ax-un 7691  ax-resscn 11101  ax-1cn 11102  ax-icn 11103  ax-addcl 11104  ax-addrcl 11105  ax-mulcl 11106  ax-mulrcl 11107  ax-mulcom 11108  ax-addass 11109  ax-mulass 11110  ax-distr 11111  ax-i2m1 11112  ax-1ne0 11113  ax-1rid 11114  ax-rnegex 11115  ax-rrecex 11116  ax-cnre 11117  ax-pre-lttri 11118  ax-pre-lttrn 11119  ax-pre-ltadd 11120  ax-pre-mulgt0 11121
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2066  df-mo 2533  df-eu 2562  df-clab 2708  df-cleq 2721  df-clel 2803  df-nfc 2878  df-ne 2926  df-nel 3030  df-ral 3045  df-rex 3054  df-rmo 3351  df-reu 3352  df-rab 3403  df-v 3446  df-sbc 3751  df-csb 3860  df-dif 3914  df-un 3916  df-in 3918  df-ss 3928  df-pss 3931  df-nul 4293  df-if 4485  df-pw 4561  df-sn 4586  df-pr 4588  df-op 4592  df-uni 4868  df-iun 4953  df-br 5103  df-opab 5165  df-mpt 5184  df-tr 5210  df-id 5526  df-eprel 5531  df-po 5539  df-so 5540  df-fr 5584  df-we 5586  df-xp 5637  df-rel 5638  df-cnv 5639  df-co 5640  df-dm 5641  df-rn 5642  df-res 5643  df-ima 5644  df-pred 6262  df-ord 6323  df-on 6324  df-lim 6325  df-suc 6326  df-iota 6452  df-fun 6501  df-fn 6502  df-f 6503  df-f1 6504  df-fo 6505  df-f1o 6506  df-fv 6507  df-riota 7326  df-ov 7372  df-oprab 7373  df-mpo 7374  df-om 7823  df-2nd 7948  df-frecs 8237  df-wrecs 8268  df-recs 8317  df-rdg 8355  df-er 8648  df-en 8896  df-dom 8897  df-sdom 8898  df-pnf 11186  df-mnf 11187  df-xr 11188  df-ltxr 11189  df-le 11190  df-sub 11383  df-neg 11384  df-div 11812  df-nn 12163  df-2 12225  df-cj 15041  df-re 15042
This theorem is referenced by:  crim  15057  replim  15058  mulre  15063  recj  15066  reneg  15067  readd  15068  remullem  15070  rei  15098  crrei  15134  crred  15173  rennim  15181  absreimsq  15234  4sqlem4  16899  2sqlem2  27305  cnre2csqima  33874
  Copyright terms: Public domain W3C validator