Users' Mathboxes Mathbox for Luke Murphy < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  25or6to4 Structured version   Visualization version   GIF version

Theorem 25or6to4 43236
Description: Question 67 of 68 from a lecture Prof. Loof Lirpa held last Saturday in Lincoln Park. When asked why the smaller root wasn't reduced to 3/2, Lirpa responded "It really doesn't matter anyhow." (Contributed by Luke Murphy, 10-Jul-2026.)
Hypotheses
Ref Expression
25or6to4.a (𝜑 → 𝐴 = 1)
25or6to4.b (𝜑 → 𝐵 = -(53 / 2))
25or6to4.c (𝜑 → 𝐶 = (75 / 2))
25or6to4.x (𝜑 → 𝑋 ∈ ℂ)
Assertion
Ref Expression
25or6to4 (𝜑 → (((𝐴 · (𝑋↑2)) + ((𝐵 · 𝑋) + 𝐶)) = 0 ↔ (𝑋 = 25 ∨ 𝑋 = (6 / 4))))

Proof of Theorem 25or6to4
StepHypRef Expression
1 25or6to4.a . . 3 (𝜑 → 𝐴 = 1)
2 ax-1cn 11251 . . 3 1 ∈ ℂ
31, 2eqeltrdi 2869 . 2 (𝜑 → 𝐴 ∈ ℂ)
4 ax-1ne0 11262 . . . 4 1 ≠ 0
54a1i 11 . . 3 (𝜑 → 1 ≠ 0)
61, 5eqnetrd 3023 . 2 (𝜑 → 𝐴 ≠ 0)
7 25or6to4.b . . 3 (𝜑 → 𝐵 = -(53 / 2))
8 df-dec 12808 . . . . . 6 53 = (((9 + 1) · 5) + 3)
9 9cn 12436 . . . . . . . . 9 9 ∈ ℂ
109, 2addcli 11308 . . . . . . . 8 (9 + 1) ∈ ℂ
11 5cn 12424 . . . . . . . 8 5 ∈ ℂ
1210, 11mulcli 11309 . . . . . . 7 ((9 + 1) · 5) ∈ ℂ
13 3cn 12417 . . . . . . 7 3 ∈ ℂ
1412, 13addcli 11308 . . . . . 6 (((9 + 1) · 5) + 3) ∈ ℂ
158, 14eqeltri 2857 . . . . 5 53 ∈ ℂ
16 2cn 12411 . . . . 5 2 ∈ ℂ
17 2ne0 12442 . . . . 5 2 ≠ 0
1815, 16, 17divcli 12052 . . . 4 (53 / 2) ∈ ℂ
1918negcli 11619 . . 3 -(53 / 2) ∈ ℂ
207, 19eqeltrdi 2869 . 2 (𝜑 → 𝐵 ∈ ℂ)
21 25or6to4.c . . 3 (𝜑 → 𝐶 = (75 / 2))
22 df-dec 12808 . . . . 5 75 = (((9 + 1) · 7) + 5)
239, 2addcli 11308 . . . . . . 7 (9 + 1) ∈ ℂ
24 7cn 12430 . . . . . . 7 7 ∈ ℂ
2523, 24mulcli 11309 . . . . . 6 ((9 + 1) · 7) ∈ ℂ
2625, 11addcli 11308 . . . . 5 (((9 + 1) · 7) + 5) ∈ ℂ
2722, 26eqeltri 2857 . . . 4 75 ∈ ℂ
2827, 16, 17divcli 12052 . . 3 (75 / 2) ∈ ℂ
2921, 28eqeltrdi 2869 . 2 (𝜑 → 𝐶 ∈ ℂ)
30 25or6to4.x . 2 (𝜑 → 𝑋 ∈ ℂ)
31 df-dec 12808 . . . 4 25 = (((9 + 1) · 2) + 5)
329, 2addcli 11308 . . . . . 6 (9 + 1) ∈ ℂ
3332, 16mulcli 11309 . . . . 5 ((9 + 1) · 2) ∈ ℂ
3433, 11addcli 11308 . . . 4 (((9 + 1) · 2) + 5) ∈ ℂ
3531, 34eqeltri 2857 . . 3 25 ∈ ℂ
3635a1i 11 . 2 (𝜑 → 25 ∈ ℂ)
37 6cn 12427 . . . 4 6 ∈ ℂ
38 4cn 12421 . . . 4 4 ∈ ℂ
39 4ne0 12447 . . . 4 4 ≠ 0
4037, 38, 39divcli 12052 . . 3 (6 / 4) ∈ ℂ
4140a1i 11 . 2 (𝜑 → (6 / 4) ∈ ℂ)
42 df-dec 12808 . . . . . . . . . . 11 25 = (((9 + 1) · 2) + 5)
439, 2addcli 11308 . . . . . . . . . . . . 13 (9 + 1) ∈ ℂ
4443, 16mulcli 11309 . . . . . . . . . . . 12 ((9 + 1) · 2) ∈ ℂ
4544, 11addcli 11308 . . . . . . . . . . 11 (((9 + 1) · 2) + 5) ∈ ℂ
4642, 45eqeltri 2857 . . . . . . . . . 10 25 ∈ ℂ
4746, 16, 17divcan4i 12057 . . . . . . . . 9 ((25 · 2) / 2) = 25
48 2nn0 12616 . . . . . . . . . . 11 2 ∈ ℕ0
49 5nn0 12619 . . . . . . . . . . 11 5 ∈ ℕ0
50 eqid 2761 . . . . . . . . . . 11 25 = 25
51 0nn0 12614 . . . . . . . . . . 11 0 ∈ ℕ0
52 1nn0 12615 . . . . . . . . . . 11 1 ∈ ℕ0
53 2t2e4 12499 . . . . . . . . . . . . 13 (2 · 2) = 4
5453oveq1i 7428 . . . . . . . . . . . 12 ((2 · 2) + 1) = (4 + 1)
55 4p1e5 12481 . . . . . . . . . . . 12 (4 + 1) = 5
5654, 55eqtri 2784 . . . . . . . . . . 11 ((2 · 2) + 1) = 5
57 5t2e10 12912 . . . . . . . . . . 11 (5 · 2) = 10
5848, 48, 49, 50, 51, 52, 56, 57decmul1c 12877 . . . . . . . . . 10 (25 · 2) = 50
5958oveq1i 7428 . . . . . . . . 9 ((25 · 2) / 2) = (50 / 2)
6047, 59eqtr3i 2786 . . . . . . . 8 25 = (50 / 2)
61 6t2e12 12916 . . . . . . . . . 10 (6 · 2) = 12
62 4t3e12 12910 . . . . . . . . . . 11 (4 · 3) = 12
6338, 13, 62mulcomli 11311 . . . . . . . . . 10 (3 · 4) = 12
6461, 63eqtr4i 2787 . . . . . . . . 9 (6 · 2) = (3 · 4)
6537, 13pm3.2i 476 . . . . . . . . . . 11 (6 ∈ ℂ ∧ 3 ∈ ℂ)
6638, 39pm3.2i 476 . . . . . . . . . . . 12 (4 ∈ ℂ ∧ 4 ≠ 0)
67 2cnne0 12548 . . . . . . . . . . . 12 (2 ∈ ℂ ∧ 2 ≠ 0)
6866, 67pm3.2i 476 . . . . . . . . . . 11 ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))
6965, 68pm3.2i 476 . . . . . . . . . 10 ((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0)))
70 divmuleq 12015 . . . . . . . . . 10 (((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))) → ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4)))
7169, 70ax-mp 5 . . . . . . . . 9 ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4))
7264, 71mpbir 234 . . . . . . . 8 (6 / 4) = (3 / 2)
7360, 72oveq12i 7430 . . . . . . 7 (25 + (6 / 4)) = ((50 / 2) + (3 / 2))
74 dfdec10 12810 . . . . . . . . . 10 53 = ((10 · 5) + 3)
7549dec0u 12833 . . . . . . . . . . 11 (10 · 5) = 50
7675oveq1i 7428 . . . . . . . . . 10 ((10 · 5) + 3) = (50 + 3)
7774, 76eqtri 2784 . . . . . . . . 9 53 = (50 + 3)
7877oveq1i 7428 . . . . . . . 8 (53 / 2) = ((50 + 3) / 2)
79 df-dec 12808 . . . . . . . . . 10 50 = (((9 + 1) · 5) + 0)
809, 2addcli 11308 . . . . . . . . . . . 12 (9 + 1) ∈ ℂ
8180, 11mulcli 11309 . . . . . . . . . . 11 ((9 + 1) · 5) ∈ ℂ
82 0cn 11291 . . . . . . . . . . 11 0 ∈ ℂ
8381, 82addcli 11308 . . . . . . . . . 10 (((9 + 1) · 5) + 0) ∈ ℂ
8479, 83eqeltri 2857 . . . . . . . . 9 50 ∈ ℂ
8584, 13, 16, 17divdiri 12067 . . . . . . . 8 ((50 + 3) / 2) = ((50 / 2) + (3 / 2))
8678, 85eqtri 2784 . . . . . . 7 (53 / 2) = ((50 / 2) + (3 / 2))
8773, 86eqtr4i 2787 . . . . . 6 (25 + (6 / 4)) = (53 / 2)
88 df-dec 12808 . . . . . . . 8 53 = (((9 + 1) · 5) + 3)
899, 2addcli 11308 . . . . . . . . . 10 (9 + 1) ∈ ℂ
9089, 11mulcli 11309 . . . . . . . . 9 ((9 + 1) · 5) ∈ ℂ
9190, 13addcli 11308 . . . . . . . 8 (((9 + 1) · 5) + 3) ∈ ℂ
9288, 91eqeltri 2857 . . . . . . 7 53 ∈ ℂ
9392, 16, 17divcli 12052 . . . . . 6 (53 / 2) ∈ ℂ
9487, 93eqeltri 2857 . . . . 5 (25 + (6 / 4)) ∈ ℂ
9594negnegi 11621 . . . 4 --(25 + (6 / 4)) = (25 + (6 / 4))
96 df-dec 12808 . . . . . . . . . . . 12 25 = (((9 + 1) · 2) + 5)
979, 2addcli 11308 . . . . . . . . . . . . . 14 (9 + 1) ∈ ℂ
9897, 16mulcli 11309 . . . . . . . . . . . . 13 ((9 + 1) · 2) ∈ ℂ
9998, 11addcli 11308 . . . . . . . . . . . 12 (((9 + 1) · 2) + 5) ∈ ℂ
10096, 99eqeltri 2857 . . . . . . . . . . 11 25 ∈ ℂ
101100, 16, 17divcan4i 12057 . . . . . . . . . 10 ((25 · 2) / 2) = 25
102 eqid 2761 . . . . . . . . . . . 12 25 = 25
10353oveq1i 7428 . . . . . . . . . . . . 13 ((2 · 2) + 1) = (4 + 1)
104103, 55eqtri 2784 . . . . . . . . . . . 12 ((2 · 2) + 1) = 5
10548, 48, 49, 102, 51, 52, 104, 57decmul1c 12877 . . . . . . . . . . 11 (25 · 2) = 50
106105oveq1i 7428 . . . . . . . . . 10 ((25 · 2) / 2) = (50 / 2)
107101, 106eqtr3i 2786 . . . . . . . . 9 25 = (50 / 2)
10838, 13, 62mulcomli 11311 . . . . . . . . . . 11 (3 · 4) = 12
10961, 108eqtr4i 2787 . . . . . . . . . 10 (6 · 2) = (3 · 4)
11037, 13pm3.2i 476 . . . . . . . . . . . 12 (6 ∈ ℂ ∧ 3 ∈ ℂ)
11138, 39pm3.2i 476 . . . . . . . . . . . . 13 (4 ∈ ℂ ∧ 4 ≠ 0)
112111, 67pm3.2i 476 . . . . . . . . . . . 12 ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))
113110, 112pm3.2i 476 . . . . . . . . . . 11 ((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0)))
114 divmuleq 12015 . . . . . . . . . . 11 (((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))) → ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4)))
115113, 114ax-mp 5 . . . . . . . . . 10 ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4))
116109, 115mpbir 234 . . . . . . . . 9 (6 / 4) = (3 / 2)
117107, 116oveq12i 7430 . . . . . . . 8 (25 + (6 / 4)) = ((50 / 2) + (3 / 2))
118 dfdec10 12810 . . . . . . . . . . 11 53 = ((10 · 5) + 3)
11949dec0u 12833 . . . . . . . . . . . 12 (10 · 5) = 50
120119oveq1i 7428 . . . . . . . . . . 11 ((10 · 5) + 3) = (50 + 3)
121118, 120eqtri 2784 . . . . . . . . . 10 53 = (50 + 3)
122121oveq1i 7428 . . . . . . . . 9 (53 / 2) = ((50 + 3) / 2)
123 df-dec 12808 . . . . . . . . . . 11 50 = (((9 + 1) · 5) + 0)
1249, 2addcli 11308 . . . . . . . . . . . . 13 (9 + 1) ∈ ℂ
125124, 11mulcli 11309 . . . . . . . . . . . 12 ((9 + 1) · 5) ∈ ℂ
126125, 82addcli 11308 . . . . . . . . . . 11 (((9 + 1) · 5) + 0) ∈ ℂ
127123, 126eqeltri 2857 . . . . . . . . . 10 50 ∈ ℂ
128127, 13, 16, 17divdiri 12067 . . . . . . . . 9 ((50 + 3) / 2) = ((50 / 2) + (3 / 2))
129122, 128eqtri 2784 . . . . . . . 8 (53 / 2) = ((50 / 2) + (3 / 2))
130117, 129eqtr4i 2787 . . . . . . 7 (25 + (6 / 4)) = (53 / 2)
131130negeqi 11543 . . . . . 6 -(25 + (6 / 4)) = -(53 / 2)
132 df-dec 12808 . . . . . . . . . 10 53 = (((9 + 1) · 5) + 3)
1339, 2addcli 11308 . . . . . . . . . . . 12 (9 + 1) ∈ ℂ
134133, 11mulcli 11309 . . . . . . . . . . 11 ((9 + 1) · 5) ∈ ℂ
135134, 13addcli 11308 . . . . . . . . . 10 (((9 + 1) · 5) + 3) ∈ ℂ
136132, 135eqeltri 2857 . . . . . . . . 9 53 ∈ ℂ
137136, 16, 17divcli 12052 . . . . . . . 8 (53 / 2) ∈ ℂ
138137negcli 11619 . . . . . . 7 -(53 / 2) ∈ ℂ
139138div1i 12038 . . . . . 6 (-(53 / 2) / 1) = -(53 / 2)
140131, 139eqtr4i 2787 . . . . 5 -(25 + (6 / 4)) = (-(53 / 2) / 1)
141140negeqi 11543 . . . 4 --(25 + (6 / 4)) = -(-(53 / 2) / 1)
14295, 141eqtr3i 2786 . . 3 (25 + (6 / 4)) = -(-(53 / 2) / 1)
1437, 1oveq12d 7436 . . . 4 (𝜑 → (𝐵 / 𝐴) = (-(53 / 2) / 1))
144143negeqd 11544 . . 3 (𝜑 → -(𝐵 / 𝐴) = -(-(53 / 2) / 1))
145142, 144eqtr4id 2815 . 2 (𝜑 → (25 + (6 / 4)) = -(𝐵 / 𝐴))
146 df-dec 12808 . . . . . . 7 75 = (((9 + 1) · 7) + 5)
1479, 2addcli 11308 . . . . . . . . 9 (9 + 1) ∈ ℂ
148147, 24mulcli 11309 . . . . . . . 8 ((9 + 1) · 7) ∈ ℂ
149148, 11addcli 11308 . . . . . . 7 (((9 + 1) · 7) + 5) ∈ ℂ
150146, 149eqeltri 2857 . . . . . 6 75 ∈ ℂ
151150, 16, 17divcli 12052 . . . . 5 (75 / 2) ∈ ℂ
152151div1i 12038 . . . 4 ((75 / 2) / 1) = (75 / 2)
153 df-dec 12808 . . . . . . 7 25 = (((9 + 1) · 2) + 5)
1549, 2addcli 11308 . . . . . . . . 9 (9 + 1) ∈ ℂ
155154, 16mulcli 11309 . . . . . . . 8 ((9 + 1) · 2) ∈ ℂ
156155, 11addcli 11308 . . . . . . 7 (((9 + 1) · 2) + 5) ∈ ℂ
157153, 156eqeltri 2857 . . . . . 6 25 ∈ ℂ
158157, 13, 16, 17divassi 12066 . . . . 5 ((25 · 3) / 2) = (25 · (3 / 2))
159 3nn0 12617 . . . . . . 7 3 ∈ ℕ0
160 eqid 2761 . . . . . . 7 25 = 25
161 2t3e6 12502 . . . . . . . . 9 (2 · 3) = 6
162161oveq1i 7428 . . . . . . . 8 ((2 · 3) + 1) = (6 + 1)
163 6p1e7 12483 . . . . . . . 8 (6 + 1) = 7
164162, 163eqtri 2784 . . . . . . 7 ((2 · 3) + 1) = 7
165 5t3e15 12913 . . . . . . 7 (5 · 3) = 15
166159, 48, 49, 160, 49, 52, 164, 165decmul1c 12877 . . . . . 6 (25 · 3) = 75
167166oveq1i 7428 . . . . 5 ((25 · 3) / 2) = (75 / 2)
168158, 167eqtr3i 2786 . . . 4 (25 · (3 / 2)) = (75 / 2)
16938, 13, 62mulcomli 11311 . . . . . . . 8 (3 · 4) = 12
17061, 169eqtr4i 2787 . . . . . . 7 (6 · 2) = (3 · 4)
17137, 13pm3.2i 476 . . . . . . . . 9 (6 ∈ ℂ ∧ 3 ∈ ℂ)
17238, 39pm3.2i 476 . . . . . . . . . 10 (4 ∈ ℂ ∧ 4 ≠ 0)
173172, 67pm3.2i 476 . . . . . . . . 9 ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))
174171, 173pm3.2i 476 . . . . . . . 8 ((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0)))
175 divmuleq 12015 . . . . . . . 8 (((6 ∈ ℂ ∧ 3 ∈ ℂ) ∧ ((4 ∈ ℂ ∧ 4 ≠ 0) ∧ (2 ∈ ℂ ∧ 2 ≠ 0))) → ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4)))
176174, 175ax-mp 5 . . . . . . 7 ((6 / 4) = (3 / 2) ↔ (6 · 2) = (3 · 4))
177170, 176mpbir 234 . . . . . 6 (6 / 4) = (3 / 2)
178177oveq2i 7429 . . . . 5 (25 · (6 / 4)) = (25 · (3 / 2))
179178eqcomi 2770 . . . 4 (25 · (3 / 2)) = (25 · (6 / 4))
180152, 168, 1793eqtr2ri 2791 . . 3 (25 · (6 / 4)) = ((75 / 2) / 1)
18121, 1oveq12d 7436 . . 3 (𝜑 → (𝐶 / 𝐴) = ((75 / 2) / 1))
182180, 181eqtr4id 2815 . 2 (𝜑 → (25 · (6 / 4)) = (𝐶 / 𝐴))
1833, 6, 20, 29, 30, 36, 41, 145, 182quadfac 43235 1 (𝜑 → (((𝐴 · (𝑋↑2)) + ((𝐵 · 𝑋) + 𝐶)) = 0 ↔ (𝑋 = 25 ∨ 𝑋 = (6 / 4))))
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ↔ wb 209   ∧ wa 401   ∨ wo 861   = wceq 1570   ∈ wcel 2145   ≠ wne 2956  (class class class)co 7418  ℂcc 11191  0cc0 11193  1c1 11194   + caddc 11196   · cmul 11198  -cneg 11535   / cdiv 11966  2c2 12390  3c3 12391  4c4 12392  5c5 12393  6c6 12394  7c7 12395  9c9 12397  cdc 12807  ↑cexp 14197
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1943  ax-6 2000  ax-7 2041  ax-8 2147  ax-9 2155  ax-10 2178  ax-11 2194  ax-12 2213  ax-ext 2733  ax-sep 5249  ax-nul 5260  ax-pow 5327  ax-pr 5391  ax-un 7749  ax-cnex 11249  ax-resscn 11250  ax-1cn 11251  ax-icn 11252  ax-addcl 11253  ax-addrcl 11254  ax-mulcl 11255  ax-mulrcl 11256  ax-mulcom 11257  ax-addass 11258  ax-mulass 11259  ax-distr 11260  ax-i2m1 11261  ax-1ne0 11262  ax-1rid 11263  ax-rnegex 11264  ax-rrecex 11265  ax-cnre 11266  ax-pre-lttri 11267  ax-pre-lttrn 11268  ax-pre-ltadd 11269  ax-pre-mulgt0 11270
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2100  df-mo 2565  df-eu 2595  df-clab 2740  df-cleq 2753  df-clel 2836  df-nfc 2910  df-ne 2957  df-nel 3063  df-ral 3078  df-rex 3088  df-rmo 3366  df-reu 3367  df-rab 3414  df-v 3453  df-sbc 3740  df-csb 3848  df-dif 3902  df-un 3904  df-in 3906  df-ss 3916  df-pss 3919  df-nul 4280  df-if 4483  df-pw 4559  df-sn 4585  df-pr 4587  df-op 4591  df-uni 4868  df-iun 4953  df-br 5104  df-opab 5168  df-mpt 5187  df-tr 5213  df-id 5546  df-eprel 5551  df-po 5559  df-so 5560  df-fr 5604  df-we 5606  df-xp 5657  df-rel 5658  df-cnv 5659  df-co 5660  df-dm 5661  df-rn 5662  df-res 5663  df-ima 5664  df-pred 6303  df-ord 6364  df-on 6365  df-lim 6366  df-suc 6367  df-iota 6493  df-fun 6539  df-fn 6540  df-f 6541  df-f1 6542  df-fo 6543  df-f1o 6544  df-fv 6545  df-riota 7375  df-ov 7421  df-oprab 7422  df-mpo 7423  df-om 7876  df-2nd 8000  df-frecs 8292  df-wrecs 8323  df-recs 8372  df-rdg 8411  df-er 8710  df-en 8967  df-dom 8968  df-sdom 8969  df-pnf 11338  df-mnf 11339  df-xr 11340  df-ltxr 11341  df-le 11342  df-sub 11536  df-neg 11537  df-div 11967  df-nn 12329  df-2 12398  df-3 12399  df-4 12400  df-5 12401  df-6 12402  df-7 12403  df-8 12404  df-9 12405  df-n0 12600  df-z 12687  df-dec 12808  df-uz 12959  df-seq 14138  df-exp 14198
This theorem is used by: (None)
  Copyright terms: Public domain W3C validator