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

Theorem metustfbas 23936
Description: The filter base generated by a metric 𝐷. (Contributed by Thierry Arnoux, 26-Nov-2017.) (Revised by Thierry Arnoux, 11-Feb-2018.) (Proof shortened by Peter Mazsa, 2-Oct-2022.)
Hypothesis
Ref Expression
metust.1 𝐹 = ran (π‘Ž ∈ ℝ+ ↦ (◑𝐷 β€œ (0[,)π‘Ž)))
Assertion
Ref Expression
metustfbas ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ 𝐹 ∈ (fBasβ€˜(𝑋 Γ— 𝑋)))
Distinct variable groups:   𝐷,π‘Ž   𝑋,π‘Ž   𝐹,π‘Ž

Proof of Theorem metustfbas
Dummy variables 𝑝 π‘₯ 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 metust.1 . . . . . . 7 𝐹 = ran (π‘Ž ∈ ℝ+ ↦ (◑𝐷 β€œ (0[,)π‘Ž)))
21metustel 23929 . . . . . 6 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ (π‘₯ ∈ 𝐹 ↔ βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))))
3 simpr 486 . . . . . . . . 9 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))) β†’ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)))
4 cnvimass 6037 . . . . . . . . . 10 (◑𝐷 β€œ (0[,)π‘Ž)) βŠ† dom 𝐷
5 psmetf 23682 . . . . . . . . . . . 12 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ 𝐷:(𝑋 Γ— 𝑋)βŸΆβ„*)
65fdmd 6683 . . . . . . . . . . 11 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ dom 𝐷 = (𝑋 Γ— 𝑋))
76adantr 482 . . . . . . . . . 10 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))) β†’ dom 𝐷 = (𝑋 Γ— 𝑋))
84, 7sseqtrid 4000 . . . . . . . . 9 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))) β†’ (◑𝐷 β€œ (0[,)π‘Ž)) βŠ† (𝑋 Γ— 𝑋))
93, 8eqsstrd 3986 . . . . . . . 8 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))) β†’ π‘₯ βŠ† (𝑋 Γ— 𝑋))
109ex 414 . . . . . . 7 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ (π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)) β†’ π‘₯ βŠ† (𝑋 Γ— 𝑋)))
1110rexlimdvw 3154 . . . . . 6 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ (βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)) β†’ π‘₯ βŠ† (𝑋 Γ— 𝑋)))
122, 11sylbid 239 . . . . 5 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ (π‘₯ ∈ 𝐹 β†’ π‘₯ βŠ† (𝑋 Γ— 𝑋)))
1312ralrimiv 3139 . . . 4 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ βˆ€π‘₯ ∈ 𝐹 π‘₯ βŠ† (𝑋 Γ— 𝑋))
14 pwssb 5065 . . . 4 (𝐹 βŠ† 𝒫 (𝑋 Γ— 𝑋) ↔ βˆ€π‘₯ ∈ 𝐹 π‘₯ βŠ† (𝑋 Γ— 𝑋))
1513, 14sylibr 233 . . 3 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ 𝐹 βŠ† 𝒫 (𝑋 Γ— 𝑋))
1615adantl 483 . 2 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ 𝐹 βŠ† 𝒫 (𝑋 Γ— 𝑋))
17 cnvexg 7865 . . . . . . 7 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ ◑𝐷 ∈ V)
18 imaexg 7856 . . . . . . 7 (◑𝐷 ∈ V β†’ (◑𝐷 β€œ (0[,)1)) ∈ V)
19 elisset 2816 . . . . . . 7 ((◑𝐷 β€œ (0[,)1)) ∈ V β†’ βˆƒπ‘₯ π‘₯ = (◑𝐷 β€œ (0[,)1)))
20 1rp 12927 . . . . . . . . 9 1 ∈ ℝ+
21 oveq2 7369 . . . . . . . . . . 11 (π‘Ž = 1 β†’ (0[,)π‘Ž) = (0[,)1))
2221imaeq2d 6017 . . . . . . . . . 10 (π‘Ž = 1 β†’ (◑𝐷 β€œ (0[,)π‘Ž)) = (◑𝐷 β€œ (0[,)1)))
2322rspceeqv 3599 . . . . . . . . 9 ((1 ∈ ℝ+ ∧ π‘₯ = (◑𝐷 β€œ (0[,)1))) β†’ βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)))
2420, 23mpan 689 . . . . . . . 8 (π‘₯ = (◑𝐷 β€œ (0[,)1)) β†’ βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)))
2524eximi 1838 . . . . . . 7 (βˆƒπ‘₯ π‘₯ = (◑𝐷 β€œ (0[,)1)) β†’ βˆƒπ‘₯βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)))
2617, 18, 19, 254syl 19 . . . . . 6 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ βˆƒπ‘₯βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž)))
272exbidv 1925 . . . . . 6 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ (βˆƒπ‘₯ π‘₯ ∈ 𝐹 ↔ βˆƒπ‘₯βˆƒπ‘Ž ∈ ℝ+ π‘₯ = (◑𝐷 β€œ (0[,)π‘Ž))))
2826, 27mpbird 257 . . . . 5 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ βˆƒπ‘₯ π‘₯ ∈ 𝐹)
2928adantl 483 . . . 4 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ βˆƒπ‘₯ π‘₯ ∈ 𝐹)
30 n0 4310 . . . 4 (𝐹 β‰  βˆ… ↔ βˆƒπ‘₯ π‘₯ ∈ 𝐹)
3129, 30sylibr 233 . . 3 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ 𝐹 β‰  βˆ…)
321metustid 23933 . . . . . . 7 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ ∈ 𝐹) β†’ ( I β†Ύ 𝑋) βŠ† π‘₯)
3332adantll 713 . . . . . 6 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ π‘₯ ∈ 𝐹) β†’ ( I β†Ύ 𝑋) βŠ† π‘₯)
34 n0 4310 . . . . . . . . . 10 (𝑋 β‰  βˆ… ↔ βˆƒπ‘ 𝑝 ∈ 𝑋)
3534biimpi 215 . . . . . . . . 9 (𝑋 β‰  βˆ… β†’ βˆƒπ‘ 𝑝 ∈ 𝑋)
3635adantr 482 . . . . . . . 8 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ βˆƒπ‘ 𝑝 ∈ 𝑋)
37 opelidres 5953 . . . . . . . . . . 11 (𝑝 ∈ 𝑋 β†’ (βŸ¨π‘, π‘βŸ© ∈ ( I β†Ύ 𝑋) ↔ 𝑝 ∈ 𝑋))
3837ibir 268 . . . . . . . . . 10 (𝑝 ∈ 𝑋 β†’ βŸ¨π‘, π‘βŸ© ∈ ( I β†Ύ 𝑋))
3938ne0d 4299 . . . . . . . . 9 (𝑝 ∈ 𝑋 β†’ ( I β†Ύ 𝑋) β‰  βˆ…)
4039exlimiv 1934 . . . . . . . 8 (βˆƒπ‘ 𝑝 ∈ 𝑋 β†’ ( I β†Ύ 𝑋) β‰  βˆ…)
4136, 40syl 17 . . . . . . 7 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ ( I β†Ύ 𝑋) β‰  βˆ…)
4241adantr 482 . . . . . 6 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ π‘₯ ∈ 𝐹) β†’ ( I β†Ύ 𝑋) β‰  βˆ…)
43 ssn0 4364 . . . . . 6 ((( I β†Ύ 𝑋) βŠ† π‘₯ ∧ ( I β†Ύ 𝑋) β‰  βˆ…) β†’ π‘₯ β‰  βˆ…)
4433, 42, 43syl2anc 585 . . . . 5 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ π‘₯ ∈ 𝐹) β†’ π‘₯ β‰  βˆ…)
4544nelrdva 3667 . . . 4 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ Β¬ βˆ… ∈ 𝐹)
46 df-nel 3047 . . . 4 (βˆ… βˆ‰ 𝐹 ↔ Β¬ βˆ… ∈ 𝐹)
4745, 46sylibr 233 . . 3 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ βˆ… βˆ‰ 𝐹)
48 df-ss 3931 . . . . . . . . 9 (π‘₯ βŠ† 𝑦 ↔ (π‘₯ ∩ 𝑦) = π‘₯)
4948biimpi 215 . . . . . . . 8 (π‘₯ βŠ† 𝑦 β†’ (π‘₯ ∩ 𝑦) = π‘₯)
5049adantl 483 . . . . . . 7 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ π‘₯ βŠ† 𝑦) β†’ (π‘₯ ∩ 𝑦) = π‘₯)
51 simplrl 776 . . . . . . 7 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ π‘₯ βŠ† 𝑦) β†’ π‘₯ ∈ 𝐹)
5250, 51eqeltrd 2834 . . . . . 6 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ π‘₯ βŠ† 𝑦) β†’ (π‘₯ ∩ 𝑦) ∈ 𝐹)
53 sseqin2 4179 . . . . . . . . 9 (𝑦 βŠ† π‘₯ ↔ (π‘₯ ∩ 𝑦) = 𝑦)
5453biimpi 215 . . . . . . . 8 (𝑦 βŠ† π‘₯ β†’ (π‘₯ ∩ 𝑦) = 𝑦)
5554adantl 483 . . . . . . 7 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ 𝑦 βŠ† π‘₯) β†’ (π‘₯ ∩ 𝑦) = 𝑦)
56 simplrr 777 . . . . . . 7 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ 𝑦 βŠ† π‘₯) β†’ 𝑦 ∈ 𝐹)
5755, 56eqeltrd 2834 . . . . . 6 ((((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) ∧ 𝑦 βŠ† π‘₯) β†’ (π‘₯ ∩ 𝑦) ∈ 𝐹)
58 simplr 768 . . . . . . 7 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ 𝐷 ∈ (PsMetβ€˜π‘‹))
59 simprl 770 . . . . . . 7 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ π‘₯ ∈ 𝐹)
60 simprr 772 . . . . . . 7 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ 𝑦 ∈ 𝐹)
611metustto 23932 . . . . . . 7 ((𝐷 ∈ (PsMetβ€˜π‘‹) ∧ π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹) β†’ (π‘₯ βŠ† 𝑦 ∨ 𝑦 βŠ† π‘₯))
6258, 59, 60, 61syl3anc 1372 . . . . . 6 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ (π‘₯ βŠ† 𝑦 ∨ 𝑦 βŠ† π‘₯))
6352, 57, 62mpjaodan 958 . . . . 5 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ (π‘₯ ∩ 𝑦) ∈ 𝐹)
64 ssidd 3971 . . . . 5 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ (π‘₯ ∩ 𝑦) βŠ† (π‘₯ ∩ 𝑦))
65 sseq1 3973 . . . . . 6 (𝑧 = (π‘₯ ∩ 𝑦) β†’ (𝑧 βŠ† (π‘₯ ∩ 𝑦) ↔ (π‘₯ ∩ 𝑦) βŠ† (π‘₯ ∩ 𝑦)))
6665rspcev 3583 . . . . 5 (((π‘₯ ∩ 𝑦) ∈ 𝐹 ∧ (π‘₯ ∩ 𝑦) βŠ† (π‘₯ ∩ 𝑦)) β†’ βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦))
6763, 64, 66syl2anc 585 . . . 4 (((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) ∧ (π‘₯ ∈ 𝐹 ∧ 𝑦 ∈ 𝐹)) β†’ βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦))
6867ralrimivva 3194 . . 3 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ βˆ€π‘₯ ∈ 𝐹 βˆ€π‘¦ ∈ 𝐹 βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦))
6931, 47, 683jca 1129 . 2 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ (𝐹 β‰  βˆ… ∧ βˆ… βˆ‰ 𝐹 ∧ βˆ€π‘₯ ∈ 𝐹 βˆ€π‘¦ ∈ 𝐹 βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦)))
70 elfvex 6884 . . . . 5 (𝐷 ∈ (PsMetβ€˜π‘‹) β†’ 𝑋 ∈ V)
7170adantl 483 . . . 4 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ 𝑋 ∈ V)
7271, 71xpexd 7689 . . 3 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ (𝑋 Γ— 𝑋) ∈ V)
73 isfbas2 23209 . . 3 ((𝑋 Γ— 𝑋) ∈ V β†’ (𝐹 ∈ (fBasβ€˜(𝑋 Γ— 𝑋)) ↔ (𝐹 βŠ† 𝒫 (𝑋 Γ— 𝑋) ∧ (𝐹 β‰  βˆ… ∧ βˆ… βˆ‰ 𝐹 ∧ βˆ€π‘₯ ∈ 𝐹 βˆ€π‘¦ ∈ 𝐹 βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦)))))
7472, 73syl 17 . 2 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ (𝐹 ∈ (fBasβ€˜(𝑋 Γ— 𝑋)) ↔ (𝐹 βŠ† 𝒫 (𝑋 Γ— 𝑋) ∧ (𝐹 β‰  βˆ… ∧ βˆ… βˆ‰ 𝐹 ∧ βˆ€π‘₯ ∈ 𝐹 βˆ€π‘¦ ∈ 𝐹 βˆƒπ‘§ ∈ 𝐹 𝑧 βŠ† (π‘₯ ∩ 𝑦)))))
7516, 69, 74mpbir2and 712 1 ((𝑋 β‰  βˆ… ∧ 𝐷 ∈ (PsMetβ€˜π‘‹)) β†’ 𝐹 ∈ (fBasβ€˜(𝑋 Γ— 𝑋)))
Colors of variables: wff setvar class
Syntax hints:  Β¬ wn 3   β†’ wi 4   ↔ wb 205   ∧ wa 397   ∨ wo 846   ∧ w3a 1088   = wceq 1542  βˆƒwex 1782   ∈ wcel 2107   β‰  wne 2940   βˆ‰ wnel 3046  βˆ€wral 3061  βˆƒwrex 3070  Vcvv 3447   ∩ cin 3913   βŠ† wss 3914  βˆ…c0 4286  π’« cpw 4564  βŸ¨cop 4596   ↦ cmpt 5192   I cid 5534   Γ— cxp 5635  β—‘ccnv 5636  dom cdm 5637  ran crn 5638   β†Ύ cres 5639   β€œ cima 5640  β€˜cfv 6500  (class class class)co 7361  0cc0 11059  1c1 11060  β„*cxr 11196  β„+crp 12923  [,)cico 13275  PsMetcpsmet 20803  fBascfbas 20807
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 1914  ax-6 1972  ax-7 2012  ax-8 2109  ax-9 2117  ax-10 2138  ax-11 2155  ax-12 2172  ax-ext 2704  ax-sep 5260  ax-nul 5267  ax-pow 5324  ax-pr 5388  ax-un 7676  ax-cnex 11115  ax-resscn 11116  ax-1cn 11117  ax-icn 11118  ax-addcl 11119  ax-addrcl 11120  ax-mulcl 11121  ax-mulrcl 11122  ax-mulcom 11123  ax-addass 11124  ax-mulass 11125  ax-distr 11126  ax-i2m1 11127  ax-1ne0 11128  ax-1rid 11129  ax-rnegex 11130  ax-rrecex 11131  ax-cnre 11132  ax-pre-lttri 11133  ax-pre-lttrn 11134  ax-pre-ltadd 11135  ax-pre-mulgt0 11136
This theorem depends on definitions:  df-bi 206  df-an 398  df-or 847  df-3or 1089  df-3an 1090  df-tru 1545  df-fal 1555  df-ex 1783  df-nf 1787  df-sb 2069  df-mo 2535  df-eu 2564  df-clab 2711  df-cleq 2725  df-clel 2811  df-nfc 2886  df-ne 2941  df-nel 3047  df-ral 3062  df-rex 3071  df-reu 3353  df-rab 3407  df-v 3449  df-sbc 3744  df-csb 3860  df-dif 3917  df-un 3919  df-in 3921  df-ss 3931  df-nul 4287  df-if 4491  df-pw 4566  df-sn 4591  df-pr 4593  df-op 4597  df-uni 4870  df-iun 4960  df-br 5110  df-opab 5172  df-mpt 5193  df-id 5535  df-po 5549  df-so 5550  df-xp 5643  df-rel 5644  df-cnv 5645  df-co 5646  df-dm 5647  df-rn 5648  df-res 5649  df-ima 5650  df-iota 6452  df-fun 6502  df-fn 6503  df-f 6504  df-f1 6505  df-fo 6506  df-f1o 6507  df-fv 6508  df-riota 7317  df-ov 7364  df-oprab 7365  df-mpo 7366  df-1st 7925  df-2nd 7926  df-er 8654  df-map 8773  df-en 8890  df-dom 8891  df-sdom 8892  df-pnf 11199  df-mnf 11200  df-xr 11201  df-ltxr 11202  df-le 11203  df-sub 11395  df-neg 11396  df-rp 12924  df-ico 13279  df-psmet 20811  df-fbas 20816
This theorem is referenced by:  metust  23937  cfilucfil  23938  metuel  23943  psmetutop  23946  restmetu  23949  metucn  23950
  Copyright terms: Public domain W3C validator