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

Theorem crre 15080
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 11158 . . . 4 (𝐴 ∈ ℝ → 𝐴 ∈ ℂ)
2 ax-icn 11127 . . . . 5 i ∈ ℂ
3 recn 11158 . . . . 5 (𝐵 ∈ ℝ → 𝐵 ∈ ℂ)
4 mulcl 11152 . . . . 5 ((i ∈ ℂ ∧ 𝐵 ∈ ℂ) → (i · 𝐵) ∈ ℂ)
52, 3, 4sylancr 587 . . . 4 (𝐵 ∈ ℝ → (i · 𝐵) ∈ ℂ)
6 addcl 11150 . . . 4 ((𝐴 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
71, 5, 6syl2an 596 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + (i · 𝐵)) ∈ ℂ)
8 reval 15072 . . 3 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
97, 8syl 17 . 2 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2))
10 cjcl 15071 . . . . . 6 ((𝐴 + (i · 𝐵)) ∈ ℂ → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
117, 10syl 17 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (∗‘(𝐴 + (i · 𝐵))) ∈ ℂ)
127, 11addcld 11193 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
1312halfcld 12427 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
141adantr 480 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℂ)
15 recl 15076 . . . . . . 7 ((𝐴 + (i · 𝐵)) ∈ ℂ → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
167, 15syl 17 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (ℜ‘(𝐴 + (i · 𝐵))) ∈ ℝ)
179, 16eqeltrrd 2829 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℝ)
18 simpl 482 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐴 ∈ ℝ)
1917, 18resubcld 11606 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ)
202a1i 11 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → i ∈ ℂ)
213adantl 481 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℂ)
222, 21, 4sylancr 587 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · 𝐵) ∈ ℂ)
237, 11subcld 11533 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) ∈ ℂ)
2423halfcld 12427 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2) ∈ ℂ)
2520, 22, 24subdid 11634 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))) = ((i · (i · 𝐵)) − (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
2614, 22, 14pnpcand 11570 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = ((i · 𝐵) − 𝐴))
2722, 14, 22pnpcan2d 11571 . . . . . . . . . . . . . 14 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) = ((i · 𝐵) − 𝐴))
2826, 27eqtr4d 2767 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))))
2928oveq1d 7402 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3014, 14addcld 11193 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 + 𝐴) ∈ ℂ)
317, 11, 30addsubd 11554 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((𝐴 + (i · 𝐵)) − (𝐴 + 𝐴)) + (∗‘(𝐴 + (i · 𝐵)))))
3222, 22addcld 11193 . . . . . . . . . . . . 13 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · 𝐵) + (i · 𝐵)) ∈ ℂ)
3332, 7, 11subsubd 11561 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = ((((i · 𝐵) + (i · 𝐵)) − (𝐴 + (i · 𝐵))) + (∗‘(𝐴 + (i · 𝐵)))))
3429, 31, 333eqtr4d 2774 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
35142timesd 12425 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) = (𝐴 + 𝐴))
3635oveq2d 7403 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (𝐴 + 𝐴)))
37222timesd 12425 . . . . . . . . . . . 12 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) = ((i · 𝐵) + (i · 𝐵)))
3837oveq1d 7402 . . . . . . . . . . 11 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) = (((i · 𝐵) + (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
3934, 36, 383eqtr4d 2774 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) = ((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))))
4039oveq1d 7402 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = (((2 · (i · 𝐵)) − ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2))
41 2cn 12261 . . . . . . . . . . 11 2 ∈ ℂ
42 mulcl 11152 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ 𝐴 ∈ ℂ) → (2 · 𝐴) ∈ ℂ)
4341, 14, 42sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · 𝐴) ∈ ℂ)
4441a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ∈ ℂ)
45 2ne0 12290 . . . . . . . . . . 11 2 ≠ 0
4645a1i 11 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 2 ≠ 0)
4712, 43, 44, 46divsubdird 11997 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) − (2 · 𝐴)) / 2) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)))
48 mulcl 11152 . . . . . . . . . . 11 ((2 ∈ ℂ ∧ (i · 𝐵) ∈ ℂ) → (2 · (i · 𝐵)) ∈ ℂ)
4941, 22, 48sylancr 587 . . . . . . . . . 10 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (2 · (i · 𝐵)) ∈ ℂ)
5049, 23, 44, 46divsubdird 11997 . . . . . . . . 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 11963 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · 𝐴) / 2) = 𝐴)
5352oveq2d 7403 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − ((2 · 𝐴) / 2)) = ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴))
5422, 44, 46divcan3d 11963 . . . . . . . . 9 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((2 · (i · 𝐵)) / 2) = (i · 𝐵))
5554oveq1d 7402 . . . . . . . 8 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((2 · (i · 𝐵)) / 2) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5651, 53, 553eqtr3d 2772 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
5756oveq2d 7403 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) = (i · ((i · 𝐵) − (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2))))
5820, 20, 21mulassd 11197 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) = (i · (i · 𝐵)))
5920, 23, 44, 46divassd 11993 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) = (i · (((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵)))) / 2)))
6058, 59oveq12d 7405 . . . . . 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 11807 . . . . . . . 8 (i · i) = -1
63 neg1rr 12172 . . . . . . . 8 -1 ∈ ℝ
6462, 63eqeltri 2824 . . . . . . 7 (i · i) ∈ ℝ
65 simpr 484 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → 𝐵 ∈ ℝ)
66 remulcl 11153 . . . . . . 7 (((i · i) ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
6764, 65, 66sylancr 587 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · i) · 𝐵) ∈ ℝ)
68 cjth 15069 . . . . . . . . 9 ((𝐴 + (i · 𝐵)) ∈ ℂ → (((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) ∈ ℝ ∧ (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ))
6968simprd 495 . . . . . . . 8 ((𝐴 + (i · 𝐵)) ∈ ℂ → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
707, 69syl 17 . . . . . . 7 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) ∈ ℝ)
7170rehalfcld 12429 . . . . . 6 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2) ∈ ℝ)
7267, 71resubcld 11606 . . . . 5 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (((i · i) · 𝐵) − ((i · ((𝐴 + (i · 𝐵)) − (∗‘(𝐴 + (i · 𝐵))))) / 2)) ∈ ℝ)
7361, 72eqeltrd 2828 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ)
74 rimul 12177 . . . 4 ((((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) ∈ ℝ ∧ (i · ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴)) ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7519, 73, 74syl2anc 584 . . 3 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → ((((𝐴 + (i · 𝐵)) + (∗‘(𝐴 + (i · 𝐵)))) / 2) − 𝐴) = 0)
7613, 14, 75subeq0d 11541 . 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 6511  (class class class)co 7387  cc 11066  cr 11067  0cc0 11068  1c1 11069  ici 11070   + caddc 11071   · cmul 11073  cmin 11405  -cneg 11406   / cdiv 11835  2c2 12241  ccj 15062  cre 15063
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 5251  ax-nul 5261  ax-pow 5320  ax-pr 5387  ax-un 7711  ax-resscn 11125  ax-1cn 11126  ax-icn 11127  ax-addcl 11128  ax-addrcl 11129  ax-mulcl 11130  ax-mulrcl 11131  ax-mulcom 11132  ax-addass 11133  ax-mulass 11134  ax-distr 11135  ax-i2m1 11136  ax-1ne0 11137  ax-1rid 11138  ax-rnegex 11139  ax-rrecex 11140  ax-cnre 11141  ax-pre-lttri 11142  ax-pre-lttrn 11143  ax-pre-ltadd 11144  ax-pre-mulgt0 11145
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 3354  df-reu 3355  df-rab 3406  df-v 3449  df-sbc 3754  df-csb 3863  df-dif 3917  df-un 3919  df-in 3921  df-ss 3931  df-pss 3934  df-nul 4297  df-if 4489  df-pw 4565  df-sn 4590  df-pr 4592  df-op 4596  df-uni 4872  df-iun 4957  df-br 5108  df-opab 5170  df-mpt 5189  df-tr 5215  df-id 5533  df-eprel 5538  df-po 5546  df-so 5547  df-fr 5591  df-we 5593  df-xp 5644  df-rel 5645  df-cnv 5646  df-co 5647  df-dm 5648  df-rn 5649  df-res 5650  df-ima 5651  df-pred 6274  df-ord 6335  df-on 6336  df-lim 6337  df-suc 6338  df-iota 6464  df-fun 6513  df-fn 6514  df-f 6515  df-f1 6516  df-fo 6517  df-f1o 6518  df-fv 6519  df-riota 7344  df-ov 7390  df-oprab 7391  df-mpo 7392  df-om 7843  df-2nd 7969  df-frecs 8260  df-wrecs 8291  df-recs 8340  df-rdg 8378  df-er 8671  df-en 8919  df-dom 8920  df-sdom 8921  df-pnf 11210  df-mnf 11211  df-xr 11212  df-ltxr 11213  df-le 11214  df-sub 11407  df-neg 11408  df-div 11836  df-nn 12187  df-2 12249  df-cj 15065  df-re 15066
This theorem is referenced by:  crim  15081  replim  15082  mulre  15087  recj  15090  reneg  15091  readd  15092  remullem  15094  rei  15122  crrei  15158  crred  15197  rennim  15205  absreimsq  15258  4sqlem4  16923  2sqlem2  27329  cnre2csqima  33901
  Copyright terms: Public domain W3C validator