![]() |
Hilbert Space Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > HSE Home > Th. List > dmdbr3 | Structured version Visualization version GIF version |
Description: Binary relation expressing the dual modular pair property. This version quantifies an equality instead of an inference. (Contributed by NM, 6-Jul-2004.) (New usage is discouraged.) |
Ref | Expression |
---|---|
dmdbr3 | ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝐴 𝑀ℋ* 𝐵 ↔ ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | dmdbr 32227 | . 2 ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝐴 𝑀ℋ* 𝐵 ↔ ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) | |
2 | chub2 31436 | . . . . . . . . 9 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) | |
3 | 2 | ancoms 457 | . . . . . . . 8 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) |
4 | chjcl 31285 | . . . . . . . . 9 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝑥 ∨ℋ 𝐵) ∈ Cℋ ) | |
5 | sseq2 4006 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝐵 ⊆ 𝑦 ↔ 𝐵 ⊆ (𝑥 ∨ℋ 𝐵))) | |
6 | ineq1 4204 | . . . . . . . . . . . . 13 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ 𝐴) = ((𝑥 ∨ℋ 𝐵) ∩ 𝐴)) | |
7 | 6 | oveq1d 7429 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵)) |
8 | ineq1 4204 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))) | |
9 | 7, 8 | eqeq12d 2742 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) ↔ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
10 | 5, 9 | imbi12d 343 | . . . . . . . . . 10 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
11 | 10 | rspcv 3604 | . . . . . . . . 9 ⊢ ((𝑥 ∨ℋ 𝐵) ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
12 | 4, 11 | syl 17 | . . . . . . . 8 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
13 | 3, 12 | mpid 44 | . . . . . . 7 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
14 | 13 | ex 411 | . . . . . 6 ⊢ (𝑥 ∈ Cℋ → (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
15 | 14 | com3l 89 | . . . . 5 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝑥 ∈ Cℋ → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
16 | 15 | ralrimdv 3142 | . . . 4 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
17 | chlejb2 31441 | . . . . . . . . . . . . 13 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → (𝐵 ⊆ 𝑥 ↔ (𝑥 ∨ℋ 𝐵) = 𝑥)) | |
18 | 17 | biimpa 475 | . . . . . . . . . . . 12 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (𝑥 ∨ℋ 𝐵) = 𝑥) |
19 | 18 | ineq1d 4210 | . . . . . . . . . . 11 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ 𝐴) = (𝑥 ∩ 𝐴)) |
20 | 19 | oveq1d 7429 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∩ 𝐴) ∨ℋ 𝐵)) |
21 | 18 | ineq1d 4210 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) |
22 | 20, 21 | eqeq12d 2742 | . . . . . . . . 9 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) ↔ ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)))) |
23 | 22 | biimpd 228 | . . . . . . . 8 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)))) |
24 | 23 | ex 411 | . . . . . . 7 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → (𝐵 ⊆ 𝑥 → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
25 | 24 | com23 86 | . . . . . 6 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
26 | 25 | ralimdva 3157 | . . . . 5 ⊢ (𝐵 ∈ Cℋ → (∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ∀𝑥 ∈ Cℋ (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
27 | sseq2 4006 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (𝐵 ⊆ 𝑥 ↔ 𝐵 ⊆ 𝑦)) | |
28 | ineq1 4204 | . . . . . . . . 9 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ 𝐴) = (𝑦 ∩ 𝐴)) | |
29 | 28 | oveq1d 7429 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = ((𝑦 ∩ 𝐴) ∨ℋ 𝐵)) |
30 | ineq1 4204 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) | |
31 | 29, 30 | eqeq12d 2742 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) ↔ ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)))) |
32 | 27, 31 | imbi12d 343 | . . . . . 6 ⊢ (𝑥 = 𝑦 → ((𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) |
33 | 32 | cbvralvw 3225 | . . . . 5 ⊢ (∀𝑥 ∈ Cℋ (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) ↔ ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)))) |
34 | 26, 33 | imbitrdi 250 | . . . 4 ⊢ (𝐵 ∈ Cℋ → (∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) |
35 | 16, 34 | impbid 211 | . . 3 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
36 | 35 | adantl 480 | . 2 ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
37 | 1, 36 | bitrd 278 | 1 ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝐴 𝑀ℋ* 𝐵 ↔ ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ↔ wb 205 ∧ wa 394 = wceq 1534 ∈ wcel 2099 ∀wral 3051 ∩ cin 3946 ⊆ wss 3947 class class class wbr 5144 (class class class)co 7414 Cℋ cch 30857 ∨ℋ chj 30861 𝑀ℋ* cdmd 30895 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1790 ax-4 1804 ax-5 1906 ax-6 1964 ax-7 2004 ax-8 2101 ax-9 2109 ax-10 2130 ax-11 2147 ax-12 2167 ax-ext 2697 ax-rep 5281 ax-sep 5295 ax-nul 5302 ax-pow 5360 ax-pr 5424 ax-un 7736 ax-inf2 9675 ax-cc 10467 ax-cnex 11203 ax-resscn 11204 ax-1cn 11205 ax-icn 11206 ax-addcl 11207 ax-addrcl 11208 ax-mulcl 11209 ax-mulrcl 11210 ax-mulcom 11211 ax-addass 11212 ax-mulass 11213 ax-distr 11214 ax-i2m1 11215 ax-1ne0 11216 ax-1rid 11217 ax-rnegex 11218 ax-rrecex 11219 ax-cnre 11220 ax-pre-lttri 11221 ax-pre-lttrn 11222 ax-pre-ltadd 11223 ax-pre-mulgt0 11224 ax-pre-sup 11225 ax-addf 11226 ax-mulf 11227 ax-hilex 30927 ax-hfvadd 30928 ax-hvcom 30929 ax-hvass 30930 ax-hv0cl 30931 ax-hvaddid 30932 ax-hfvmul 30933 ax-hvmulid 30934 ax-hvmulass 30935 ax-hvdistr1 30936 ax-hvdistr2 30937 ax-hvmul0 30938 ax-hfi 31007 ax-his1 31010 ax-his2 31011 ax-his3 31012 ax-his4 31013 ax-hcompl 31130 |
This theorem depends on definitions: df-bi 206 df-an 395 df-or 846 df-3or 1085 df-3an 1086 df-tru 1537 df-fal 1547 df-ex 1775 df-nf 1779 df-sb 2061 df-mo 2529 df-eu 2558 df-clab 2704 df-cleq 2718 df-clel 2803 df-nfc 2878 df-ne 2931 df-nel 3037 df-ral 3052 df-rex 3061 df-rmo 3365 df-reu 3366 df-rab 3421 df-v 3465 df-sbc 3777 df-csb 3893 df-dif 3950 df-un 3952 df-in 3954 df-ss 3964 df-pss 3967 df-nul 4324 df-if 4525 df-pw 4600 df-sn 4625 df-pr 4627 df-tp 4629 df-op 4631 df-uni 4907 df-int 4948 df-iun 4996 df-iin 4997 df-br 5145 df-opab 5207 df-mpt 5228 df-tr 5262 df-id 5571 df-eprel 5577 df-po 5585 df-so 5586 df-fr 5628 df-se 5629 df-we 5630 df-xp 5679 df-rel 5680 df-cnv 5681 df-co 5682 df-dm 5683 df-rn 5684 df-res 5685 df-ima 5686 df-pred 6303 df-ord 6369 df-on 6370 df-lim 6371 df-suc 6372 df-iota 6496 df-fun 6546 df-fn 6547 df-f 6548 df-f1 6549 df-fo 6550 df-f1o 6551 df-fv 6552 df-isom 6553 df-riota 7370 df-ov 7417 df-oprab 7418 df-mpo 7419 df-of 7680 df-om 7867 df-1st 7993 df-2nd 7994 df-supp 8165 df-frecs 8286 df-wrecs 8317 df-recs 8391 df-rdg 8430 df-1o 8486 df-2o 8487 df-oadd 8490 df-omul 8491 df-er 8724 df-map 8847 df-pm 8848 df-ixp 8917 df-en 8965 df-dom 8966 df-sdom 8967 df-fin 8968 df-fsupp 9397 df-fi 9445 df-sup 9476 df-inf 9477 df-oi 9544 df-card 9973 df-acn 9976 df-pnf 11289 df-mnf 11290 df-xr 11291 df-ltxr 11292 df-le 11293 df-sub 11485 df-neg 11486 df-div 11911 df-nn 12257 df-2 12319 df-3 12320 df-4 12321 df-5 12322 df-6 12323 df-7 12324 df-8 12325 df-9 12326 df-n0 12517 df-z 12603 df-dec 12722 df-uz 12867 df-q 12977 df-rp 13021 df-xneg 13138 df-xadd 13139 df-xmul 13140 df-ioo 13374 df-ico 13376 df-icc 13377 df-fz 13531 df-fzo 13674 df-fl 13804 df-seq 14014 df-exp 14074 df-hash 14341 df-cj 15097 df-re 15098 df-im 15099 df-sqrt 15233 df-abs 15234 df-clim 15483 df-rlim 15484 df-sum 15684 df-struct 17142 df-sets 17159 df-slot 17177 df-ndx 17189 df-base 17207 df-ress 17236 df-plusg 17272 df-mulr 17273 df-starv 17274 df-sca 17275 df-vsca 17276 df-ip 17277 df-tset 17278 df-ple 17279 df-ds 17281 df-unif 17282 df-hom 17283 df-cco 17284 df-rest 17430 df-topn 17431 df-0g 17449 df-gsum 17450 df-topgen 17451 df-pt 17452 df-prds 17455 df-xrs 17510 df-qtop 17515 df-imas 17516 df-xps 17518 df-mre 17592 df-mrc 17593 df-acs 17595 df-mgm 18626 df-sgrp 18705 df-mnd 18721 df-submnd 18767 df-mulg 19056 df-cntz 19305 df-cmn 19774 df-psmet 21329 df-xmet 21330 df-met 21331 df-bl 21332 df-mopn 21333 df-fbas 21334 df-fg 21335 df-cnfld 21338 df-top 22882 df-topon 22899 df-topsp 22921 df-bases 22935 df-cld 23009 df-ntr 23010 df-cls 23011 df-nei 23088 df-cn 23217 df-cnp 23218 df-lm 23219 df-haus 23305 df-tx 23552 df-hmeo 23745 df-fil 23836 df-fm 23928 df-flim 23929 df-flf 23930 df-xms 24312 df-ms 24313 df-tms 24314 df-cfil 25269 df-cau 25270 df-cmet 25271 df-grpo 30421 df-gid 30422 df-ginv 30423 df-gdiv 30424 df-ablo 30473 df-vc 30487 df-nv 30520 df-va 30523 df-ba 30524 df-sm 30525 df-0v 30526 df-vs 30527 df-nmcv 30528 df-ims 30529 df-dip 30629 df-ssp 30650 df-ph 30741 df-cbn 30791 df-hnorm 30896 df-hba 30897 df-hvsub 30899 df-hlim 30900 df-hcau 30901 df-sh 31135 df-ch 31149 df-oc 31180 df-ch0 31181 df-shs 31236 df-chj 31238 df-dmd 32209 |
This theorem is referenced by: dmdbr6ati 32351 |
Copyright terms: Public domain | W3C validator |