Hilbert Space Explorer < Previous   Next > Nearby theorems Mirrors  >  Home  >  HSE Home  >  Th. List  >  cdj3lem2b Structured version   Visualization version   GIF version

Theorem cdj3lem2b 29605
 Description: Lemma for cdj3i 29609. The first-component function 𝑆 is bounded if the subspaces are completely disjoint. (Contributed by NM, 26-May-2005.) (New usage is discouraged.)
Hypotheses
Ref Expression
cdj3lem2.1 𝐴S
cdj3lem2.2 𝐵S
cdj3lem2.3 𝑆 = (𝑥 ∈ (𝐴 + 𝐵) ↦ (𝑧𝐴𝑤𝐵 𝑥 = (𝑧 + 𝑤)))
Assertion
Ref Expression
cdj3lem2b (∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦)))) → ∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑢 ∈ (𝐴 + 𝐵)(norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))
Distinct variable groups:   𝑥,𝑦,𝑧,𝑤,𝑣,𝑢,𝐴   𝑥,𝐵,𝑦,𝑧,𝑤,𝑣,𝑢   𝑣,𝑆,𝑢
Allowed substitution hints:   𝑆(𝑥,𝑦,𝑧,𝑤)

Proof of Theorem cdj3lem2b
Dummy variables 𝑡 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 cdj3lem2.1 . . 3 𝐴S
2 cdj3lem2.2 . . 3 𝐵S
31, 2cdj3lem1 29602 . 2 (∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦)))) → (𝐴𝐵) = 0)
41, 2shseli 28484 . . . . . . . 8 (𝑢 ∈ (𝐴 + 𝐵) ↔ ∃𝑡𝐴𝐵 𝑢 = (𝑡 + ))
54biimpi 206 . . . . . . 7 (𝑢 ∈ (𝐴 + 𝐵) → ∃𝑡𝐴𝐵 𝑢 = (𝑡 + ))
6 fveq2 6352 . . . . . . . . . . . . . 14 (𝑥 = 𝑡 → (norm𝑥) = (norm𝑡))
76oveq1d 6828 . . . . . . . . . . . . 13 (𝑥 = 𝑡 → ((norm𝑥) + (norm𝑦)) = ((norm𝑡) + (norm𝑦)))
8 oveq1 6820 . . . . . . . . . . . . . . 15 (𝑥 = 𝑡 → (𝑥 + 𝑦) = (𝑡 + 𝑦))
98fveq2d 6356 . . . . . . . . . . . . . 14 (𝑥 = 𝑡 → (norm‘(𝑥 + 𝑦)) = (norm‘(𝑡 + 𝑦)))
109oveq2d 6829 . . . . . . . . . . . . 13 (𝑥 = 𝑡 → (𝑣 · (norm‘(𝑥 + 𝑦))) = (𝑣 · (norm‘(𝑡 + 𝑦))))
117, 10breq12d 4817 . . . . . . . . . . . 12 (𝑥 = 𝑡 → (((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) ↔ ((norm𝑡) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑡 + 𝑦)))))
12 fveq2 6352 . . . . . . . . . . . . . 14 (𝑦 = → (norm𝑦) = (norm))
1312oveq2d 6829 . . . . . . . . . . . . 13 (𝑦 = → ((norm𝑡) + (norm𝑦)) = ((norm𝑡) + (norm)))
14 oveq2 6821 . . . . . . . . . . . . . . 15 (𝑦 = → (𝑡 + 𝑦) = (𝑡 + ))
1514fveq2d 6356 . . . . . . . . . . . . . 14 (𝑦 = → (norm‘(𝑡 + 𝑦)) = (norm‘(𝑡 + )))
1615oveq2d 6829 . . . . . . . . . . . . 13 (𝑦 = → (𝑣 · (norm‘(𝑡 + 𝑦))) = (𝑣 · (norm‘(𝑡 + ))))
1713, 16breq12d 4817 . . . . . . . . . . . 12 (𝑦 = → (((norm𝑡) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑡 + 𝑦))) ↔ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))))
1811, 17rspc2v 3461 . . . . . . . . . . 11 ((𝑡𝐴𝐵) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))))
19 cdj3lem2.3 . . . . . . . . . . . . . . . . . 18 𝑆 = (𝑥 ∈ (𝐴 + 𝐵) ↦ (𝑧𝐴𝑤𝐵 𝑥 = (𝑧 + 𝑤)))
201, 2, 19cdj3lem2 29603 . . . . . . . . . . . . . . . . 17 ((𝑡𝐴𝐵 ∧ (𝐴𝐵) = 0) → (𝑆‘(𝑡 + )) = 𝑡)
21203expa 1112 . . . . . . . . . . . . . . . 16 (((𝑡𝐴𝐵) ∧ (𝐴𝐵) = 0) → (𝑆‘(𝑡 + )) = 𝑡)
2221fveq2d 6356 . . . . . . . . . . . . . . 15 (((𝑡𝐴𝐵) ∧ (𝐴𝐵) = 0) → (norm‘(𝑆‘(𝑡 + ))) = (norm𝑡))
2322ad2ant2r 800 . . . . . . . . . . . . . 14 ((((𝑡𝐴𝐵) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) ∧ ((𝐴𝐵) = 0𝑣 ∈ ℝ)) → (norm‘(𝑆‘(𝑡 + ))) = (norm𝑡))
242sheli 28380 . . . . . . . . . . . . . . . . . . . . . 22 (𝐵 ∈ ℋ)
25 normge0 28292 . . . . . . . . . . . . . . . . . . . . . 22 ( ∈ ℋ → 0 ≤ (norm))
2624, 25syl 17 . . . . . . . . . . . . . . . . . . . . 21 (𝐵 → 0 ≤ (norm))
2726adantl 473 . . . . . . . . . . . . . . . . . . . 20 ((𝑡𝐴𝐵) → 0 ≤ (norm))
281sheli 28380 . . . . . . . . . . . . . . . . . . . . . 22 (𝑡𝐴𝑡 ∈ ℋ)
29 normcl 28291 . . . . . . . . . . . . . . . . . . . . . 22 (𝑡 ∈ ℋ → (norm𝑡) ∈ ℝ)
3028, 29syl 17 . . . . . . . . . . . . . . . . . . . . 21 (𝑡𝐴 → (norm𝑡) ∈ ℝ)
31 normcl 28291 . . . . . . . . . . . . . . . . . . . . . 22 ( ∈ ℋ → (norm) ∈ ℝ)
3224, 31syl 17 . . . . . . . . . . . . . . . . . . . . 21 (𝐵 → (norm) ∈ ℝ)
33 addge01 10730 . . . . . . . . . . . . . . . . . . . . 21 (((norm𝑡) ∈ ℝ ∧ (norm) ∈ ℝ) → (0 ≤ (norm) ↔ (norm𝑡) ≤ ((norm𝑡) + (norm))))
3430, 32, 33syl2an 495 . . . . . . . . . . . . . . . . . . . 20 ((𝑡𝐴𝐵) → (0 ≤ (norm) ↔ (norm𝑡) ≤ ((norm𝑡) + (norm))))
3527, 34mpbid 222 . . . . . . . . . . . . . . . . . . 19 ((𝑡𝐴𝐵) → (norm𝑡) ≤ ((norm𝑡) + (norm)))
3635adantr 472 . . . . . . . . . . . . . . . . . 18 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → (norm𝑡) ≤ ((norm𝑡) + (norm)))
3730ad2antrr 764 . . . . . . . . . . . . . . . . . . 19 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → (norm𝑡) ∈ ℝ)
38 readdcl 10211 . . . . . . . . . . . . . . . . . . . . 21 (((norm𝑡) ∈ ℝ ∧ (norm) ∈ ℝ) → ((norm𝑡) + (norm)) ∈ ℝ)
3930, 32, 38syl2an 495 . . . . . . . . . . . . . . . . . . . 20 ((𝑡𝐴𝐵) → ((norm𝑡) + (norm)) ∈ ℝ)
4039adantr 472 . . . . . . . . . . . . . . . . . . 19 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → ((norm𝑡) + (norm)) ∈ ℝ)
41 hvaddcl 28178 . . . . . . . . . . . . . . . . . . . . . . 23 ((𝑡 ∈ ℋ ∧ ∈ ℋ) → (𝑡 + ) ∈ ℋ)
4228, 24, 41syl2an 495 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑡𝐴𝐵) → (𝑡 + ) ∈ ℋ)
43 normcl 28291 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑡 + ) ∈ ℋ → (norm‘(𝑡 + )) ∈ ℝ)
4442, 43syl 17 . . . . . . . . . . . . . . . . . . . . 21 ((𝑡𝐴𝐵) → (norm‘(𝑡 + )) ∈ ℝ)
45 remulcl 10213 . . . . . . . . . . . . . . . . . . . . 21 ((𝑣 ∈ ℝ ∧ (norm‘(𝑡 + )) ∈ ℝ) → (𝑣 · (norm‘(𝑡 + ))) ∈ ℝ)
4644, 45sylan2 492 . . . . . . . . . . . . . . . . . . . 20 ((𝑣 ∈ ℝ ∧ (𝑡𝐴𝐵)) → (𝑣 · (norm‘(𝑡 + ))) ∈ ℝ)
4746ancoms 468 . . . . . . . . . . . . . . . . . . 19 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → (𝑣 · (norm‘(𝑡 + ))) ∈ ℝ)
48 letr 10323 . . . . . . . . . . . . . . . . . . 19 (((norm𝑡) ∈ ℝ ∧ ((norm𝑡) + (norm)) ∈ ℝ ∧ (𝑣 · (norm‘(𝑡 + ))) ∈ ℝ) → (((norm𝑡) ≤ ((norm𝑡) + (norm)) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + )))))
4937, 40, 47, 48syl3anc 1477 . . . . . . . . . . . . . . . . . 18 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → (((norm𝑡) ≤ ((norm𝑡) + (norm)) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + )))))
5036, 49mpand 713 . . . . . . . . . . . . . . . . 17 (((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) → (((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + ))) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + )))))
5150imp 444 . . . . . . . . . . . . . . . 16 ((((𝑡𝐴𝐵) ∧ 𝑣 ∈ ℝ) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + ))))
5251an32s 881 . . . . . . . . . . . . . . 15 ((((𝑡𝐴𝐵) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) ∧ 𝑣 ∈ ℝ) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + ))))
5352adantrl 754 . . . . . . . . . . . . . 14 ((((𝑡𝐴𝐵) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) ∧ ((𝐴𝐵) = 0𝑣 ∈ ℝ)) → (norm𝑡) ≤ (𝑣 · (norm‘(𝑡 + ))))
5423, 53eqbrtrd 4826 . . . . . . . . . . . . 13 ((((𝑡𝐴𝐵) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) ∧ ((𝐴𝐵) = 0𝑣 ∈ ℝ)) → (norm‘(𝑆‘(𝑡 + ))) ≤ (𝑣 · (norm‘(𝑡 + ))))
55 fveq2 6352 . . . . . . . . . . . . . . 15 (𝑢 = (𝑡 + ) → (𝑆𝑢) = (𝑆‘(𝑡 + )))
5655fveq2d 6356 . . . . . . . . . . . . . 14 (𝑢 = (𝑡 + ) → (norm‘(𝑆𝑢)) = (norm‘(𝑆‘(𝑡 + ))))
57 fveq2 6352 . . . . . . . . . . . . . . 15 (𝑢 = (𝑡 + ) → (norm𝑢) = (norm‘(𝑡 + )))
5857oveq2d 6829 . . . . . . . . . . . . . 14 (𝑢 = (𝑡 + ) → (𝑣 · (norm𝑢)) = (𝑣 · (norm‘(𝑡 + ))))
5956, 58breq12d 4817 . . . . . . . . . . . . 13 (𝑢 = (𝑡 + ) → ((norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)) ↔ (norm‘(𝑆‘(𝑡 + ))) ≤ (𝑣 · (norm‘(𝑡 + )))))
6054, 59syl5ibrcom 237 . . . . . . . . . . . 12 ((((𝑡𝐴𝐵) ∧ ((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + )))) ∧ ((𝐴𝐵) = 0𝑣 ∈ ℝ)) → (𝑢 = (𝑡 + ) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))
6160exp31 631 . . . . . . . . . . 11 ((𝑡𝐴𝐵) → (((norm𝑡) + (norm)) ≤ (𝑣 · (norm‘(𝑡 + ))) → (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (𝑢 = (𝑡 + ) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))))
6218, 61syld 47 . . . . . . . . . 10 ((𝑡𝐴𝐵) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (𝑢 = (𝑡 + ) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))))
6362com14 96 . . . . . . . . 9 (𝑢 = (𝑡 + ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (((𝐴𝐵) = 0𝑣 ∈ ℝ) → ((𝑡𝐴𝐵) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))))
6463com4t 93 . . . . . . . 8 (((𝐴𝐵) = 0𝑣 ∈ ℝ) → ((𝑡𝐴𝐵) → (𝑢 = (𝑡 + ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))))
6564rexlimdvv 3175 . . . . . . 7 (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (∃𝑡𝐴𝐵 𝑢 = (𝑡 + ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)))))
665, 65syl5com 31 . . . . . 6 (𝑢 ∈ (𝐴 + 𝐵) → (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)))))
6766com3l 89 . . . . 5 (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → (𝑢 ∈ (𝐴 + 𝐵) → (norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)))))
6867ralrimdv 3106 . . . 4 (((𝐴𝐵) = 0𝑣 ∈ ℝ) → (∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦))) → ∀𝑢 ∈ (𝐴 + 𝐵)(norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))
6968anim2d 590 . . 3 (((𝐴𝐵) = 0𝑣 ∈ ℝ) → ((0 < 𝑣 ∧ ∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦)))) → (0 < 𝑣 ∧ ∀𝑢 ∈ (𝐴 + 𝐵)(norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)))))
7069reximdva 3155 . 2 ((𝐴𝐵) = 0 → (∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦)))) → ∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑢 ∈ (𝐴 + 𝐵)(norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢)))))
713, 70mpcom 38 1 (∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑥𝐴𝑦𝐵 ((norm𝑥) + (norm𝑦)) ≤ (𝑣 · (norm‘(𝑥 + 𝑦)))) → ∃𝑣 ∈ ℝ (0 < 𝑣 ∧ ∀𝑢 ∈ (𝐴 + 𝐵)(norm‘(𝑆𝑢)) ≤ (𝑣 · (norm𝑢))))
 Colors of variables: wff setvar class Syntax hints:   → wi 4   ↔ wb 196   ∧ wa 383   = wceq 1632   ∈ wcel 2139  ∀wral 3050  ∃wrex 3051   ∩ cin 3714   class class class wbr 4804   ↦ cmpt 4881  ‘cfv 6049  ℩crio 6773  (class class class)co 6813  ℝcr 10127  0cc0 10128   + caddc 10131   · cmul 10133   < clt 10266   ≤ cle 10267   ℋchil 28085   +ℎ cva 28086  normℎcno 28089   Sℋ csh 28094   +ℋ cph 28097  0ℋc0h 28101 This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-rep 4923  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7114  ax-cnex 10184  ax-resscn 10185  ax-1cn 10186  ax-icn 10187  ax-addcl 10188  ax-addrcl 10189  ax-mulcl 10190  ax-mulrcl 10191  ax-mulcom 10192  ax-addass 10193  ax-mulass 10194  ax-distr 10195  ax-i2m1 10196  ax-1ne0 10197  ax-1rid 10198  ax-rnegex 10199  ax-rrecex 10200  ax-cnre 10201  ax-pre-lttri 10202  ax-pre-lttrn 10203  ax-pre-ltadd 10204  ax-pre-mulgt0 10205  ax-pre-sup 10206  ax-hilex 28165  ax-hfvadd 28166  ax-hvcom 28167  ax-hvass 28168  ax-hv0cl 28169  ax-hvaddid 28170  ax-hfvmul 28171  ax-hvmulid 28172  ax-hvmulass 28173  ax-hvdistr1 28174  ax-hvdistr2 28175  ax-hvmul0 28176  ax-hfi 28245  ax-his1 28248  ax-his3 28250  ax-his4 28251 This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3or 1073  df-3an 1074  df-tru 1635  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-nel 3036  df-ral 3055  df-rex 3056  df-reu 3057  df-rmo 3058  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-pss 3731  df-nul 4059  df-if 4231  df-pw 4304  df-sn 4322  df-pr 4324  df-tp 4326  df-op 4328  df-uni 4589  df-int 4628  df-iun 4674  df-br 4805  df-opab 4865  df-mpt 4882  df-tr 4905  df-id 5174  df-eprel 5179  df-po 5187  df-so 5188  df-fr 5225  df-we 5227  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-pred 5841  df-ord 5887  df-on 5888  df-lim 5889  df-suc 5890  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-riota 6774  df-ov 6816  df-oprab 6817  df-mpt2 6818  df-om 7231  df-2nd 7334  df-wrecs 7576  df-recs 7637  df-rdg 7675  df-er 7911  df-en 8122  df-dom 8123  df-sdom 8124  df-sup 8513  df-pnf 10268  df-mnf 10269  df-xr 10270  df-ltxr 10271  df-le 10272  df-sub 10460  df-neg 10461  df-div 10877  df-nn 11213  df-2 11271  df-3 11272  df-n0 11485  df-z 11570  df-uz 11880  df-rp 12026  df-seq 12996  df-exp 13055  df-cj 14038  df-re 14039  df-im 14040  df-sqrt 14174  df-abs 14175  df-grpo 27656  df-ablo 27708  df-hnorm 28134  df-hvsub 28137  df-sh 28373  df-ch0 28419  df-shs 28476 This theorem is referenced by:  cdj3lem3b  29608  cdj3i  29609
 Copyright terms: Public domain W3C validator