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

Theorem cncnp 22431
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 22386 . . . 4 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)))
21simprbda 499 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → 𝐹:𝑋𝑌)
3 eqid 2738 . . . . . . 7 𝐽 = 𝐽
43cncnpi 22429 . . . . . 6 ((𝐹 ∈ (𝐽 Cn 𝐾) ∧ 𝑥 𝐽) → 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
54ralrimiva 3103 . . . . 5 (𝐹 ∈ (𝐽 Cn 𝐾) → ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
65adantl 482 . . . 4 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
7 toponuni 22063 . . . . . 6 (𝐽 ∈ (TopOn‘𝑋) → 𝑋 = 𝐽)
87ad2antrr 723 . . . . 5 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → 𝑋 = 𝐽)
98raleqdv 3348 . . . 4 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) ↔ ∀𝑥 𝐽𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
106, 9mpbird 256 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
112, 10jca 512 . 2 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝐹 ∈ (𝐽 Cn 𝐾)) → (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
12 simprl 768 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹:𝑋𝑌)
13 cnvimass 5989 . . . . . . . . . 10 (𝐹𝑦) ⊆ dom 𝐹
14 fdm 6609 . . . . . . . . . . 11 (𝐹:𝑋𝑌 → dom 𝐹 = 𝑋)
1514adantl 482 . . . . . . . . . 10 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → dom 𝐹 = 𝑋)
1613, 15sseqtrid 3973 . . . . . . . . 9 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (𝐹𝑦) ⊆ 𝑋)
17 ssralv 3987 . . . . . . . . 9 ((𝐹𝑦) ⊆ 𝑋 → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
1816, 17syl 17 . . . . . . . 8 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥)))
19 simprr 770 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))
20 simpllr 773 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝑦𝐾)
21 ffn 6600 . . . . . . . . . . . . . 14 (𝐹:𝑋𝑌𝐹 Fn 𝑋)
2221ad2antlr 724 . . . . . . . . . . . . 13 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 Fn 𝑋)
23 simprl 768 . . . . . . . . . . . . 13 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝑥 ∈ (𝐹𝑦))
24 elpreima 6935 . . . . . . . . . . . . . 14 (𝐹 Fn 𝑋 → (𝑥 ∈ (𝐹𝑦) ↔ (𝑥𝑋 ∧ (𝐹𝑥) ∈ 𝑦)))
2524simplbda 500 . . . . . . . . . . . . 13 ((𝐹 Fn 𝑋𝑥 ∈ (𝐹𝑦)) → (𝐹𝑥) ∈ 𝑦)
2622, 23, 25syl2anc 584 . . . . . . . . . . . 12 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (𝐹𝑥) ∈ 𝑦)
27 cnpimaex 22407 . . . . . . . . . . . 12 ((𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) ∧ 𝑦𝐾 ∧ (𝐹𝑥) ∈ 𝑦) → ∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦))
2819, 20, 26, 27syl3anc 1370 . . . . . . . . . . 11 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦))
29 simpllr 773 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝐹:𝑋𝑌)
3029ffund 6604 . . . . . . . . . . . . . 14 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → Fun 𝐹)
31 simp-4l 780 . . . . . . . . . . . . . . . 16 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐽 ∈ (TopOn‘𝑋))
32 toponss 22076 . . . . . . . . . . . . . . . 16 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝑢𝐽) → 𝑢𝑋)
3331, 32sylan 580 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝑢𝑋)
3429, 14syl 17 . . . . . . . . . . . . . . 15 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → dom 𝐹 = 𝑋)
3533, 34sseqtrrd 3962 . . . . . . . . . . . . . 14 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → 𝑢 ⊆ dom 𝐹)
36 funimass3 6931 . . . . . . . . . . . . . 14 ((Fun 𝐹𝑢 ⊆ dom 𝐹) → ((𝐹𝑢) ⊆ 𝑦𝑢 ⊆ (𝐹𝑦)))
3730, 35, 36syl2anc 584 . . . . . . . . . . . . 13 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → ((𝐹𝑢) ⊆ 𝑦𝑢 ⊆ (𝐹𝑦)))
3837anbi2d 629 . . . . . . . . . . . 12 ((((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑢𝐽) → ((𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦) ↔ (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
3938rexbidva 3225 . . . . . . . . . . 11 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (∃𝑢𝐽 (𝑥𝑢 ∧ (𝐹𝑢) ⊆ 𝑦) ↔ ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4028, 39mpbid 231 . . . . . . . . . 10 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ (𝑥 ∈ (𝐹𝑦) ∧ 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
4140expr 457 . . . . . . . . 9 (((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) ∧ 𝑥 ∈ (𝐹𝑦)) → (𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4241ralimdva 3108 . . . . . . . 8 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥 ∈ (𝐹𝑦)𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4318, 42syld 47 . . . . . . 7 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ 𝐹:𝑋𝑌) → (∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4443impr 455 . . . . . 6 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ 𝑦𝐾) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
4544an32s 649 . . . . 5 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦)))
46 topontop 22062 . . . . . . 7 (𝐽 ∈ (TopOn‘𝑋) → 𝐽 ∈ Top)
4746ad3antrrr 727 . . . . . 6 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → 𝐽 ∈ Top)
48 eltop2 22125 . . . . . 6 (𝐽 ∈ Top → ((𝐹𝑦) ∈ 𝐽 ↔ ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
4947, 48syl 17 . . . . 5 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → ((𝐹𝑦) ∈ 𝐽 ↔ ∀𝑥 ∈ (𝐹𝑦)∃𝑢𝐽 (𝑥𝑢𝑢 ⊆ (𝐹𝑦))))
5045, 49mpbird 256 . . . 4 ((((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) ∧ 𝑦𝐾) → (𝐹𝑦) ∈ 𝐽)
5150ralrimiva 3103 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)
521adantr 481 . . 3 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑦𝐾 (𝐹𝑦) ∈ 𝐽)))
5312, 51, 52mpbir2and 710 . 2 (((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) ∧ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))) → 𝐹 ∈ (𝐽 Cn 𝐾))
5411, 53impbida 798 1 ((𝐽 ∈ (TopOn‘𝑋) ∧ 𝐾 ∈ (TopOn‘𝑌)) → (𝐹 ∈ (𝐽 Cn 𝐾) ↔ (𝐹:𝑋𝑌 ∧ ∀𝑥𝑋 𝐹 ∈ ((𝐽 CnP 𝐾)‘𝑥))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 205  wa 396   = wceq 1539  wcel 2106  wral 3064  wrex 3065  wss 3887   cuni 4839  ccnv 5588  dom cdm 5589  cima 5592  Fun wfun 6427   Fn wfn 6428  wf 6429  cfv 6433  (class class class)co 7275  Topctop 22042  TopOnctopon 22059   Cn ccn 22375   CnP ccnp 22376
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-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-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-ral 3069  df-rex 3070  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-nul 4257  df-if 4460  df-pw 4535  df-sn 4562  df-pr 4564  df-op 4568  df-uni 4840  df-iun 4926  df-br 5075  df-opab 5137  df-mpt 5158  df-id 5489  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-iota 6391  df-fun 6435  df-fn 6436  df-f 6437  df-fv 6441  df-ov 7278  df-oprab 7279  df-mpo 7280  df-1st 7831  df-2nd 7832  df-map 8617  df-topgen 17154  df-top 22043  df-topon 22060  df-cn 22378  df-cnp 22379
This theorem is referenced by:  cncnp2  22432  cnnei  22433  cnconst2  22434  1stccn  22614  ptcn  22778  cnflf  23153  cnfcf  23193  symgtgp  23257  ghmcnp  23266  metcn  23699  txmetcn  23704  cnlimc  25052  dvcn  25085  dvcnvre  25183  psercn  25585  abelth  25600  cxpcn3  25901  cvmlift2lem11  33275  cvmlift2lem12  33276  cvmlift3lem8  33288  ioccncflimc  43426  cncfuni  43427  icccncfext  43428  icocncflimc  43430  cncfiooicclem1  43434  dirkercncflem2  43645  dirkercncflem4  43647  dirkercncf  43648  fourierdlem32  43680  fourierdlem33  43681  fourierdlem62  43709  fourierdlem93  43740  fourierdlem101  43748
  Copyright terms: Public domain W3C validator