Users' Mathboxes Mathbox for Scott Fenton < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  madebday Structured version   Visualization version   GIF version

Theorem madebday 34080
Description: A surreal is part of the set made by ordinal 𝐴 iff its birthday is less than or equal to 𝐴. Remark in [Conway] p. 29. (Contributed by Scott Fenton, 19-Aug-2024.)
Assertion
Ref Expression
madebday ((𝐴 ∈ On ∧ 𝑋 No ) → (𝑋 ∈ ( M ‘𝐴) ↔ ( bday 𝑋) ⊆ 𝐴))

Proof of Theorem madebday
Dummy variables 𝑎 𝑏 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 madebdayim 34070 . 2 (𝑋 ∈ ( M ‘𝐴) → ( bday 𝑋) ⊆ 𝐴)
2 sseq2 3947 . . . . . . 7 (𝑎 = 𝑏 → (( bday 𝑥) ⊆ 𝑎 ↔ ( bday 𝑥) ⊆ 𝑏))
3 fveq2 6774 . . . . . . . 8 (𝑎 = 𝑏 → ( M ‘𝑎) = ( M ‘𝑏))
43eleq2d 2824 . . . . . . 7 (𝑎 = 𝑏 → (𝑥 ∈ ( M ‘𝑎) ↔ 𝑥 ∈ ( M ‘𝑏)))
52, 4imbi12d 345 . . . . . 6 (𝑎 = 𝑏 → ((( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)) ↔ (( bday 𝑥) ⊆ 𝑏𝑥 ∈ ( M ‘𝑏))))
65ralbidv 3112 . . . . 5 (𝑎 = 𝑏 → (∀𝑥 No (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)) ↔ ∀𝑥 No (( bday 𝑥) ⊆ 𝑏𝑥 ∈ ( M ‘𝑏))))
7 fveq2 6774 . . . . . . . 8 (𝑥 = 𝑦 → ( bday 𝑥) = ( bday 𝑦))
87sseq1d 3952 . . . . . . 7 (𝑥 = 𝑦 → (( bday 𝑥) ⊆ 𝑏 ↔ ( bday 𝑦) ⊆ 𝑏))
9 eleq1 2826 . . . . . . 7 (𝑥 = 𝑦 → (𝑥 ∈ ( M ‘𝑏) ↔ 𝑦 ∈ ( M ‘𝑏)))
108, 9imbi12d 345 . . . . . 6 (𝑥 = 𝑦 → ((( bday 𝑥) ⊆ 𝑏𝑥 ∈ ( M ‘𝑏)) ↔ (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))))
1110cbvralvw 3383 . . . . 5 (∀𝑥 No (( bday 𝑥) ⊆ 𝑏𝑥 ∈ ( M ‘𝑏)) ↔ ∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)))
126, 11bitrdi 287 . . . 4 (𝑎 = 𝑏 → (∀𝑥 No (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)) ↔ ∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))))
13 sseq2 3947 . . . . . 6 (𝑎 = 𝐴 → (( bday 𝑥) ⊆ 𝑎 ↔ ( bday 𝑥) ⊆ 𝐴))
14 fveq2 6774 . . . . . . 7 (𝑎 = 𝐴 → ( M ‘𝑎) = ( M ‘𝐴))
1514eleq2d 2824 . . . . . 6 (𝑎 = 𝐴 → (𝑥 ∈ ( M ‘𝑎) ↔ 𝑥 ∈ ( M ‘𝐴)))
1613, 15imbi12d 345 . . . . 5 (𝑎 = 𝐴 → ((( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)) ↔ (( bday 𝑥) ⊆ 𝐴𝑥 ∈ ( M ‘𝐴))))
1716ralbidv 3112 . . . 4 (𝑎 = 𝐴 → (∀𝑥 No (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)) ↔ ∀𝑥 No (( bday 𝑥) ⊆ 𝐴𝑥 ∈ ( M ‘𝐴))))
18 bdayelon 33971 . . . . . . . . 9 ( bday 𝑥) ∈ On
19 onsseleq 6307 . . . . . . . . 9 ((( bday 𝑥) ∈ On ∧ 𝑎 ∈ On) → (( bday 𝑥) ⊆ 𝑎 ↔ (( bday 𝑥) ∈ 𝑎 ∨ ( bday 𝑥) = 𝑎)))
2018, 19mpan 687 . . . . . . . 8 (𝑎 ∈ On → (( bday 𝑥) ⊆ 𝑎 ↔ (( bday 𝑥) ∈ 𝑎 ∨ ( bday 𝑥) = 𝑎)))
2120ad2antrr 723 . . . . . . 7 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → (( bday 𝑥) ⊆ 𝑎 ↔ (( bday 𝑥) ∈ 𝑎 ∨ ( bday 𝑥) = 𝑎)))
22 simpll 764 . . . . . . . . . . 11 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → 𝑎 ∈ On)
23 onelss 6308 . . . . . . . . . . . . 13 (𝑎 ∈ On → (( bday 𝑥) ∈ 𝑎 → ( bday 𝑥) ⊆ 𝑎))
2423ad2antrr 723 . . . . . . . . . . . 12 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → (( bday 𝑥) ∈ 𝑎 → ( bday 𝑥) ⊆ 𝑎))
2524imp 407 . . . . . . . . . . 11 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → ( bday 𝑥) ⊆ 𝑎)
26 madess 34059 . . . . . . . . . . 11 ((𝑎 ∈ On ∧ ( bday 𝑥) ⊆ 𝑎) → ( M ‘( bday 𝑥)) ⊆ ( M ‘𝑎))
2722, 25, 26syl2an2r 682 . . . . . . . . . 10 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → ( M ‘( bday 𝑥)) ⊆ ( M ‘𝑎))
28 ssid 3943 . . . . . . . . . . 11 ( bday 𝑥) ⊆ ( bday 𝑥)
29 simpr 485 . . . . . . . . . . . . 13 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → ( bday 𝑥) ∈ 𝑎)
30 simplr 766 . . . . . . . . . . . . 13 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → 𝑥 No )
3129, 30jca 512 . . . . . . . . . . . 12 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → (( bday 𝑥) ∈ 𝑎𝑥 No ))
32 simpllr 773 . . . . . . . . . . . 12 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)))
33 sseq2 3947 . . . . . . . . . . . . . 14 (𝑏 = ( bday 𝑥) → (( bday 𝑦) ⊆ 𝑏 ↔ ( bday 𝑦) ⊆ ( bday 𝑥)))
34 fveq2 6774 . . . . . . . . . . . . . . 15 (𝑏 = ( bday 𝑥) → ( M ‘𝑏) = ( M ‘( bday 𝑥)))
3534eleq2d 2824 . . . . . . . . . . . . . 14 (𝑏 = ( bday 𝑥) → (𝑦 ∈ ( M ‘𝑏) ↔ 𝑦 ∈ ( M ‘( bday 𝑥))))
3633, 35imbi12d 345 . . . . . . . . . . . . 13 (𝑏 = ( bday 𝑥) → ((( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ↔ (( bday 𝑦) ⊆ ( bday 𝑥) → 𝑦 ∈ ( M ‘( bday 𝑥)))))
37 fveq2 6774 . . . . . . . . . . . . . . 15 (𝑦 = 𝑥 → ( bday 𝑦) = ( bday 𝑥))
3837sseq1d 3952 . . . . . . . . . . . . . 14 (𝑦 = 𝑥 → (( bday 𝑦) ⊆ ( bday 𝑥) ↔ ( bday 𝑥) ⊆ ( bday 𝑥)))
39 eleq1 2826 . . . . . . . . . . . . . 14 (𝑦 = 𝑥 → (𝑦 ∈ ( M ‘( bday 𝑥)) ↔ 𝑥 ∈ ( M ‘( bday 𝑥))))
4038, 39imbi12d 345 . . . . . . . . . . . . 13 (𝑦 = 𝑥 → ((( bday 𝑦) ⊆ ( bday 𝑥) → 𝑦 ∈ ( M ‘( bday 𝑥))) ↔ (( bday 𝑥) ⊆ ( bday 𝑥) → 𝑥 ∈ ( M ‘( bday 𝑥)))))
4136, 40rspc2v 3570 . . . . . . . . . . . 12 ((( bday 𝑥) ∈ 𝑎𝑥 No ) → (∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) → (( bday 𝑥) ⊆ ( bday 𝑥) → 𝑥 ∈ ( M ‘( bday 𝑥)))))
4231, 32, 41sylc 65 . . . . . . . . . . 11 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → (( bday 𝑥) ⊆ ( bday 𝑥) → 𝑥 ∈ ( M ‘( bday 𝑥))))
4328, 42mpi 20 . . . . . . . . . 10 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → 𝑥 ∈ ( M ‘( bday 𝑥)))
4427, 43sseldd 3922 . . . . . . . . 9 ((((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) ∧ ( bday 𝑥) ∈ 𝑎) → 𝑥 ∈ ( M ‘𝑎))
4544ex 413 . . . . . . . 8 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → (( bday 𝑥) ∈ 𝑎𝑥 ∈ ( M ‘𝑎)))
46 madebdaylemlrcut 34079 . . . . . . . . . . . 12 ((∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → (( L ‘𝑥) |s ( R ‘𝑥)) = 𝑥)
4718a1i 11 . . . . . . . . . . . . . 14 (𝑥 No → ( bday 𝑥) ∈ On)
48 lltropt 34056 . . . . . . . . . . . . . 14 (𝑥 No → ( L ‘𝑥) <<s ( R ‘𝑥))
49 leftssold 34061 . . . . . . . . . . . . . . 15 ( L ‘𝑥) ⊆ ( O ‘( bday 𝑥))
5049a1i 11 . . . . . . . . . . . . . 14 (𝑥 No → ( L ‘𝑥) ⊆ ( O ‘( bday 𝑥)))
51 rightssold 34062 . . . . . . . . . . . . . . 15 ( R ‘𝑥) ⊆ ( O ‘( bday 𝑥))
5251a1i 11 . . . . . . . . . . . . . 14 (𝑥 No → ( R ‘𝑥) ⊆ ( O ‘( bday 𝑥)))
53 madecut 34065 . . . . . . . . . . . . . 14 (((( bday 𝑥) ∈ On ∧ ( L ‘𝑥) <<s ( R ‘𝑥)) ∧ (( L ‘𝑥) ⊆ ( O ‘( bday 𝑥)) ∧ ( R ‘𝑥) ⊆ ( O ‘( bday 𝑥)))) → (( L ‘𝑥) |s ( R ‘𝑥)) ∈ ( M ‘( bday 𝑥)))
5447, 48, 50, 52, 53syl22anc 836 . . . . . . . . . . . . 13 (𝑥 No → (( L ‘𝑥) |s ( R ‘𝑥)) ∈ ( M ‘( bday 𝑥)))
5554adantl 482 . . . . . . . . . . . 12 ((∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → (( L ‘𝑥) |s ( R ‘𝑥)) ∈ ( M ‘( bday 𝑥)))
5646, 55eqeltrrd 2840 . . . . . . . . . . 11 ((∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → 𝑥 ∈ ( M ‘( bday 𝑥)))
57 raleq 3342 . . . . . . . . . . . . 13 (( bday 𝑥) = 𝑎 → (∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ↔ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))))
5857anbi1d 630 . . . . . . . . . . . 12 (( bday 𝑥) = 𝑎 → ((∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) ↔ (∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No )))
59 fveq2 6774 . . . . . . . . . . . . 13 (( bday 𝑥) = 𝑎 → ( M ‘( bday 𝑥)) = ( M ‘𝑎))
6059eleq2d 2824 . . . . . . . . . . . 12 (( bday 𝑥) = 𝑎 → (𝑥 ∈ ( M ‘( bday 𝑥)) ↔ 𝑥 ∈ ( M ‘𝑎)))
6158, 60imbi12d 345 . . . . . . . . . . 11 (( bday 𝑥) = 𝑎 → (((∀𝑏 ∈ ( bday 𝑥)∀𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → 𝑥 ∈ ( M ‘( bday 𝑥))) ↔ ((∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → 𝑥 ∈ ( M ‘𝑎))))
6256, 61mpbii 232 . . . . . . . . . 10 (( bday 𝑥) = 𝑎 → ((∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → 𝑥 ∈ ( M ‘𝑎)))
6362com12 32 . . . . . . . . 9 ((∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) ∧ 𝑥 No ) → (( bday 𝑥) = 𝑎𝑥 ∈ ( M ‘𝑎)))
6463adantll 711 . . . . . . . 8 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → (( bday 𝑥) = 𝑎𝑥 ∈ ( M ‘𝑎)))
6545, 64jaod 856 . . . . . . 7 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → ((( bday 𝑥) ∈ 𝑎 ∨ ( bday 𝑥) = 𝑎) → 𝑥 ∈ ( M ‘𝑎)))
6621, 65sylbid 239 . . . . . 6 (((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) ∧ 𝑥 No ) → (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)))
6766ralrimiva 3103 . . . . 5 ((𝑎 ∈ On ∧ ∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏))) → ∀𝑥 No (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎)))
6867ex 413 . . . 4 (𝑎 ∈ On → (∀𝑏𝑎𝑦 No (( bday 𝑦) ⊆ 𝑏𝑦 ∈ ( M ‘𝑏)) → ∀𝑥 No (( bday 𝑥) ⊆ 𝑎𝑥 ∈ ( M ‘𝑎))))
6912, 17, 68tfis3 7704 . . 3 (𝐴 ∈ On → ∀𝑥 No (( bday 𝑥) ⊆ 𝐴𝑥 ∈ ( M ‘𝐴)))
70 fveq2 6774 . . . . . 6 (𝑥 = 𝑋 → ( bday 𝑥) = ( bday 𝑋))
7170sseq1d 3952 . . . . 5 (𝑥 = 𝑋 → (( bday 𝑥) ⊆ 𝐴 ↔ ( bday 𝑋) ⊆ 𝐴))
72 eleq1 2826 . . . . 5 (𝑥 = 𝑋 → (𝑥 ∈ ( M ‘𝐴) ↔ 𝑋 ∈ ( M ‘𝐴)))
7371, 72imbi12d 345 . . . 4 (𝑥 = 𝑋 → ((( bday 𝑥) ⊆ 𝐴𝑥 ∈ ( M ‘𝐴)) ↔ (( bday 𝑋) ⊆ 𝐴𝑋 ∈ ( M ‘𝐴))))
7473rspccva 3560 . . 3 ((∀𝑥 No (( bday 𝑥) ⊆ 𝐴𝑥 ∈ ( M ‘𝐴)) ∧ 𝑋 No ) → (( bday 𝑋) ⊆ 𝐴𝑋 ∈ ( M ‘𝐴)))
7569, 74sylan 580 . 2 ((𝐴 ∈ On ∧ 𝑋 No ) → (( bday 𝑋) ⊆ 𝐴𝑋 ∈ ( M ‘𝐴)))
761, 75impbid2 225 1 ((𝐴 ∈ On ∧ 𝑋 No ) → (𝑋 ∈ ( M ‘𝐴) ↔ ( bday 𝑋) ⊆ 𝐴))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 205  wa 396  wo 844   = wceq 1539  wcel 2106  wral 3064  wss 3887   class class class wbr 5074  Oncon0 6266  cfv 6433  (class class class)co 7275   No csur 33843   bday cbday 33845   <<s csslt 33975   |s cscut 33977   M cmade 34026   O cold 34027   L cleft 34029   R cright 34030
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2709  ax-rep 5209  ax-sep 5223  ax-nul 5230  ax-pow 5288  ax-pr 5352  ax-un 7588
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-3or 1087  df-3an 1088  df-tru 1542  df-fal 1552  df-ex 1783  df-nf 1787  df-sb 2068  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2816  df-nfc 2889  df-ne 2944  df-ral 3069  df-rex 3070  df-rmo 3071  df-reu 3072  df-rab 3073  df-v 3434  df-sbc 3717  df-csb 3833  df-dif 3890  df-un 3892  df-in 3894  df-ss 3904  df-pss 3906  df-nul 4257  df-if 4460  df-pw 4535  df-sn 4562  df-pr 4564  df-tp 4566  df-op 4568  df-uni 4840  df-int 4880  df-iun 4926  df-br 5075  df-opab 5137  df-mpt 5158  df-tr 5192  df-id 5489  df-eprel 5495  df-po 5503  df-so 5504  df-fr 5544  df-we 5546  df-xp 5595  df-rel 5596  df-cnv 5597  df-co 5598  df-dm 5599  df-rn 5600  df-res 5601  df-ima 5602  df-pred 6202  df-ord 6269  df-on 6270  df-suc 6272  df-iota 6391  df-fun 6435  df-fn 6436  df-f 6437  df-f1 6438  df-fo 6439  df-f1o 6440  df-fv 6441  df-riota 7232  df-ov 7278  df-oprab 7279  df-mpo 7280  df-2nd 7832  df-frecs 8097  df-wrecs 8128  df-recs 8202  df-1o 8297  df-2o 8298  df-no 33846  df-slt 33847  df-bday 33848  df-sslt 33976  df-scut 33978  df-made 34031  df-old 34032  df-left 34034  df-right 34035
This theorem is referenced by:  oldbday  34081  newbday  34082  lrcut  34083
  Copyright terms: Public domain W3C validator