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

Theorem cncnp 21885
Description: A continuous function is continuous at all points. Theorem 7.2(g) of [Munkres] p. 107. (Contributed by NM, 15-May-2007.) (Proof shortened by Mario Carneiro, 21-Aug-2015.)
Assertion
Ref Expression
cncnp ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))))
Distinct variable groups:   𝑥,𝐹   𝑥,𝐽   𝑥,𝐾   𝑥,𝑋   𝑥,𝑌

Proof of Theorem cncnp
Dummy variables 𝑢 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 iscn 21840 . . . 4 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)))
21simprbda 502 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → 𝐹:𝑋𝑌)
3 eqid 2798 . . . . . . 7 𝐽 = 𝐽
43cncnpi 21883 . . . . . 6 ((𝐹 ∈ (𝐽 Cn 𝐾) ∧ 𝑥 𝐽) → 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
54ralrimiva 3149 . . . . 5 (𝐹 ∈ (𝐽 Cn 𝐾) → ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
65adantl 485 . . . 4 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
7 toponuni 21519 . . . . . 6 (𝐽 ∈ (TopOn‘𝑋) → 𝑋 = 𝐽)
87ad2antrr 725 . . . . 5 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → 𝑋 = 𝐽)
98raleqdv 3364 . . . 4 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) ↔ ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
106, 9mpbird 260 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
112, 10jca 515 . 2 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
12 simprl 770 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹:𝑋𝑌)
13 cnvimass 5916 . . . . . . . . . 10 (𝐹𝑦) ⊆ dom 𝐹
14 fdm 6495 . . . . . . . . . . 11 (𝐹:𝑋𝑌 → dom 𝐹 = 𝑋)
1514adantl 485 . . . . . . . . . 10 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → dom 𝐹 = 𝑋)
1613, 15sseqtrid 3967 . . . . . . . . 9 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (𝐹𝑦) ⊆ 𝑋)
17 ssralv 3981 . . . . . . . . 9 ((𝐹𝑦) ⊆ 𝑋 → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
1816, 17syl 17 . . . . . . . 8 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
19 simprr 772 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
20 simpllr 775 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝑦𝐾)
21 ffn 6487 . . . . . . . . . . . . . 14 (𝐹:𝑋𝑌𝐹 Fn 𝑋)
2221ad2antlr 726 . . . . . . . . . . . . 13 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 Fn 𝑋)
23 simprl 770 . . . . . . . . . . . . 13 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝑥 ∈ (𝐹𝑦))
24 elpreima 6805 . . . . . . . . . . . . . 14 (𝐹 Fn 𝑋 → (𝑥 ∈ (𝐹𝑦) ↔ (𝑥𝑋 ∧ (𝐹𝑥) ∈ 𝑦)))
2524simplbda 503 . . . . . . . . . . . . 13 ((𝐹 Fn 𝑋𝑥 ∈ (𝐹𝑦)) → (𝐹𝑥) ∈ 𝑦)
2622, 23, 25syl2anc 587 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (𝐹𝑥) ∈ 𝑦)
27 cnpimaex 21861 . . . . . . . . . . . 12 ((𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) ∧ 𝑦𝐾 ∧ (𝐹𝑥) ∈ 𝑦) → ∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦))
2819, 20, 26, 27syl3anc 1368 . . . . . . . . . . 11 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦))
29 simpllr 775 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝐹:𝑋𝑌)
3029ffund 6491 . . . . . . . . . . . . . 14 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → Fun 𝐹)
31 simp-4l 782 . . . . . . . . . . . . . . . 16 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐽 ∈ (TopOn‘𝑋))
32 toponss 21532 . . . . . . . . . . . . . . . 16 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝑢𝐽) → 𝑢𝑋)
3331, 32sylan 583 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝑢𝑋)
3429, 14syl 17 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → dom 𝐹 = 𝑋)
3533, 34sseqtrrd 3956 . . . . . . . . . . . . . 14 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝑢 ⊆ dom 𝐹)
36 funimass3 6801 . . . . . . . . . . . . . 14 ((Fun 𝐹𝑢 ⊆ dom 𝐹) → ((𝐹𝑢) ⊆ 𝑦𝑢 ⊆ (𝐹𝑦)))
3730, 35, 36syl2anc 587 . . . . . . . . . . . . 13 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → ((𝐹𝑢) ⊆ 𝑦𝑢 ⊆ (𝐹𝑦)))
3837anbi2d 631 . . . . . . . . . . . 12 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → ((𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦) ↔ (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
3938rexbidva 3255 . . . . . . . . . . 11 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦) ↔ ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4028, 39mpbid 235 . . . . . . . . . 10 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
4140expr 460 . . . . . . . . 9 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ 𝑥 ∈ (𝐹𝑦)) → (𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4241ralimdva 3144 . . . . . . . 8 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4318, 42syld 47 . . . . . . 7 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4443impr 458 . . . . . 6 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
4544an32s 651 . . . . 5 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
46 topontop 21518 . . . . . . 7 (𝐽 ∈ (TopOn‘𝑋) → 𝐽 ∈ Top)
4746ad3antrrr 729 . . . . . 6 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → 𝐽 ∈ Top)
48 eltop2 21580 . . . . . 6 (𝐽 ∈ Top → ((𝐹𝑦) ∈ 𝐽 ↔ ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4947, 48syl 17 . . . . 5 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → ((𝐹𝑦) ∈ 𝐽 ↔ ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
5045, 49mpbird 260 . . . 4 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → (𝐹𝑦) ∈ 𝐽)
5150ralrimiva 3149 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)
521adantr 484 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)))
5312, 51, 52mpbir2and 712 . 2 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 ∈ (𝐽 Cn 𝐾))
5411, 53impbida 800 1 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 209  wa 399   = wceq 1538  wcel 2111  wral 3106  wrex 3107  wss 3881   cuni 4800  ccnv 5518  dom cdm 5519  cima 5522  Fun wfun 6318   Fn wfn 6319  wf 6320  cfv 6324  (class class class)co 7135  Topctop 21498  TopOnctopon 21515   Cn ccn 21829   CnP ccnp 21830
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2113  ax-9 2121  ax-10 2142  ax-11 2158  ax-12 2175  ax-ext 2770  ax-sep 5167  ax-nul 5174  ax-pow 5231  ax-pr 5295  ax-un 7441
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2598  df-eu 2629  df-clab 2777  df-cleq 2791  df-clel 2870  df-nfc 2938  df-ne 2988  df-ral 3111  df-rex 3112  df-rab 3115  df-v 3443  df-sbc 3721  df-csb 3829  df-dif 3884  df-un 3886  df-in 3888  df-ss 3898  df-nul 4244  df-if 4426  df-pw 4499  df-sn 4526  df-pr 4528  df-op 4532  df-uni 4801  df-iun 4883  df-br 5031  df-opab 5093  df-mpt 5111  df-id 5425  df-xp 5525  df-rel 5526  df-cnv 5527  df-co 5528  df-dm 5529  df-rn 5530  df-res 5531  df-ima 5532  df-iota 6283  df-fun 6326  df-fn 6327  df-f 6328  df-fv 6332  df-ov 7138  df-oprab 7139  df-mpo 7140  df-1st 7671  df-2nd 7672  df-map 8391  df-topgen 16709  df-top 21499  df-topon 21516  df-cn 21832  df-cnp 21833
This theorem is referenced by:  cncnp2  21886  cnnei  21887  cnconst2  21888  1stccn  22068  ptcn  22232  cnflf  22607  cnfcf  22647  symgtgp  22711  ghmcnp  22720  metcn  23150  txmetcn  23155  cnlimc  24491  dvcn  24524  dvcnvre  24622  psercn  25021  abelth  25036  cxpcn3  25337  cvmlift2lem11  32673  cvmlift2lem12  32674  cvmlift3lem8  32686  ioccncflimc  42527  cncfuni  42528  icccncfext  42529  icocncflimc  42531  cncfiooicclem1  42535  dirkercncflem2  42746  dirkercncflem4  42748  dirkercncf  42749  fourierdlem32  42781  fourierdlem33  42782  fourierdlem62  42810  fourierdlem93  42841  fourierdlem101  42849
  Copyright terms: Public domain W3C validator