![]() |
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 31241 | . 2 ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝐴 𝑀ℋ* 𝐵 ↔ ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) | |
2 | chub2 30450 | . . . . . . . . 9 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) | |
3 | 2 | ancoms 459 | . . . . . . . 8 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) |
4 | chjcl 30299 | . . . . . . . . 9 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝑥 ∨ℋ 𝐵) ∈ Cℋ ) | |
5 | sseq2 3970 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝐵 ⊆ 𝑦 ↔ 𝐵 ⊆ (𝑥 ∨ℋ 𝐵))) | |
6 | ineq1 4165 | . . . . . . . . . . . . 13 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ 𝐴) = ((𝑥 ∨ℋ 𝐵) ∩ 𝐴)) | |
7 | 6 | oveq1d 7372 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵)) |
8 | ineq1 4165 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))) | |
9 | 7, 8 | eqeq12d 2752 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) ↔ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
10 | 5, 9 | imbi12d 344 | . . . . . . . . . 10 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
11 | 10 | rspcv 3577 | . . . . . . . . 9 ⊢ ((𝑥 ∨ℋ 𝐵) ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
12 | 4, 11 | syl 17 | . . . . . . . 8 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
13 | 3, 12 | mpid 44 | . . . . . . 7 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
14 | 13 | ex 413 | . . . . . 6 ⊢ (𝑥 ∈ Cℋ → (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
15 | 14 | com3l 89 | . . . . 5 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → (𝑥 ∈ Cℋ → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
16 | 15 | ralrimdv 3149 | . . . 4 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
17 | chlejb2 30455 | . . . . . . . . . . . . 13 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → (𝐵 ⊆ 𝑥 ↔ (𝑥 ∨ℋ 𝐵) = 𝑥)) | |
18 | 17 | biimpa 477 | . . . . . . . . . . . 12 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (𝑥 ∨ℋ 𝐵) = 𝑥) |
19 | 18 | ineq1d 4171 | . . . . . . . . . . 11 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ 𝐴) = (𝑥 ∩ 𝐴)) |
20 | 19 | oveq1d 7372 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∩ 𝐴) ∨ℋ 𝐵)) |
21 | 18 | ineq1d 4171 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) |
22 | 20, 21 | eqeq12d 2752 | . . . . . . . . 9 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) ↔ ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)))) |
23 | 22 | biimpd 228 | . . . . . . . 8 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)))) |
24 | 23 | ex 413 | . . . . . . 7 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → (𝐵 ⊆ 𝑥 → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
25 | 24 | com23 86 | . . . . . 6 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → ((((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
26 | 25 | ralimdva 3164 | . . . . 5 ⊢ (𝐵 ∈ Cℋ → (∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ∀𝑥 ∈ Cℋ (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
27 | sseq2 3970 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (𝐵 ⊆ 𝑥 ↔ 𝐵 ⊆ 𝑦)) | |
28 | ineq1 4165 | . . . . . . . . 9 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ 𝐴) = (𝑦 ∩ 𝐴)) | |
29 | 28 | oveq1d 7372 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = ((𝑦 ∩ 𝐴) ∨ℋ 𝐵)) |
30 | ineq1 4165 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) | |
31 | 29, 30 | eqeq12d 2752 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) ↔ ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)))) |
32 | 27, 31 | imbi12d 344 | . . . . . 6 ⊢ (𝑥 = 𝑦 → ((𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) |
33 | 32 | cbvralvw 3225 | . . . . 5 ⊢ (∀𝑥 ∈ Cℋ (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) ↔ ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)))) |
34 | 26, 33 | syl6ib 250 | . . . 4 ⊢ (𝐵 ∈ Cℋ → (∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) |
35 | 16, 34 | impbid 211 | . . 3 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
36 | 35 | adantl 482 | . 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 396 = wceq 1541 ∈ wcel 2106 ∀wral 3064 ∩ cin 3909 ⊆ wss 3910 class class class wbr 5105 (class class class)co 7357 Cℋ cch 29871 ∨ℋ chj 29875 𝑀ℋ* cdmd 29909 |
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 1913 ax-6 1971 ax-7 2011 ax-8 2108 ax-9 2116 ax-10 2137 ax-11 2154 ax-12 2171 ax-ext 2707 ax-rep 5242 ax-sep 5256 ax-nul 5263 ax-pow 5320 ax-pr 5384 ax-un 7672 ax-inf2 9577 ax-cc 10371 ax-cnex 11107 ax-resscn 11108 ax-1cn 11109 ax-icn 11110 ax-addcl 11111 ax-addrcl 11112 ax-mulcl 11113 ax-mulrcl 11114 ax-mulcom 11115 ax-addass 11116 ax-mulass 11117 ax-distr 11118 ax-i2m1 11119 ax-1ne0 11120 ax-1rid 11121 ax-rnegex 11122 ax-rrecex 11123 ax-cnre 11124 ax-pre-lttri 11125 ax-pre-lttrn 11126 ax-pre-ltadd 11127 ax-pre-mulgt0 11128 ax-pre-sup 11129 ax-addf 11130 ax-mulf 11131 ax-hilex 29941 ax-hfvadd 29942 ax-hvcom 29943 ax-hvass 29944 ax-hv0cl 29945 ax-hvaddid 29946 ax-hfvmul 29947 ax-hvmulid 29948 ax-hvmulass 29949 ax-hvdistr1 29950 ax-hvdistr2 29951 ax-hvmul0 29952 ax-hfi 30021 ax-his1 30024 ax-his2 30025 ax-his3 30026 ax-his4 30027 ax-hcompl 30144 |
This theorem depends on definitions: df-bi 206 df-an 397 df-or 846 df-3or 1088 df-3an 1089 df-tru 1544 df-fal 1554 df-ex 1782 df-nf 1786 df-sb 2068 df-mo 2538 df-eu 2567 df-clab 2714 df-cleq 2728 df-clel 2814 df-nfc 2889 df-ne 2944 df-nel 3050 df-ral 3065 df-rex 3074 df-rmo 3353 df-reu 3354 df-rab 3408 df-v 3447 df-sbc 3740 df-csb 3856 df-dif 3913 df-un 3915 df-in 3917 df-ss 3927 df-pss 3929 df-nul 4283 df-if 4487 df-pw 4562 df-sn 4587 df-pr 4589 df-tp 4591 df-op 4593 df-uni 4866 df-int 4908 df-iun 4956 df-iin 4957 df-br 5106 df-opab 5168 df-mpt 5189 df-tr 5223 df-id 5531 df-eprel 5537 df-po 5545 df-so 5546 df-fr 5588 df-se 5589 df-we 5590 df-xp 5639 df-rel 5640 df-cnv 5641 df-co 5642 df-dm 5643 df-rn 5644 df-res 5645 df-ima 5646 df-pred 6253 df-ord 6320 df-on 6321 df-lim 6322 df-suc 6323 df-iota 6448 df-fun 6498 df-fn 6499 df-f 6500 df-f1 6501 df-fo 6502 df-f1o 6503 df-fv 6504 df-isom 6505 df-riota 7313 df-ov 7360 df-oprab 7361 df-mpo 7362 df-of 7617 df-om 7803 df-1st 7921 df-2nd 7922 df-supp 8093 df-frecs 8212 df-wrecs 8243 df-recs 8317 df-rdg 8356 df-1o 8412 df-2o 8413 df-oadd 8416 df-omul 8417 df-er 8648 df-map 8767 df-pm 8768 df-ixp 8836 df-en 8884 df-dom 8885 df-sdom 8886 df-fin 8887 df-fsupp 9306 df-fi 9347 df-sup 9378 df-inf 9379 df-oi 9446 df-card 9875 df-acn 9878 df-pnf 11191 df-mnf 11192 df-xr 11193 df-ltxr 11194 df-le 11195 df-sub 11387 df-neg 11388 df-div 11813 df-nn 12154 df-2 12216 df-3 12217 df-4 12218 df-5 12219 df-6 12220 df-7 12221 df-8 12222 df-9 12223 df-n0 12414 df-z 12500 df-dec 12619 df-uz 12764 df-q 12874 df-rp 12916 df-xneg 13033 df-xadd 13034 df-xmul 13035 df-ioo 13268 df-ico 13270 df-icc 13271 df-fz 13425 df-fzo 13568 df-fl 13697 df-seq 13907 df-exp 13968 df-hash 14231 df-cj 14984 df-re 14985 df-im 14986 df-sqrt 15120 df-abs 15121 df-clim 15370 df-rlim 15371 df-sum 15571 df-struct 17019 df-sets 17036 df-slot 17054 df-ndx 17066 df-base 17084 df-ress 17113 df-plusg 17146 df-mulr 17147 df-starv 17148 df-sca 17149 df-vsca 17150 df-ip 17151 df-tset 17152 df-ple 17153 df-ds 17155 df-unif 17156 df-hom 17157 df-cco 17158 df-rest 17304 df-topn 17305 df-0g 17323 df-gsum 17324 df-topgen 17325 df-pt 17326 df-prds 17329 df-xrs 17384 df-qtop 17389 df-imas 17390 df-xps 17392 df-mre 17466 df-mrc 17467 df-acs 17469 df-mgm 18497 df-sgrp 18546 df-mnd 18557 df-submnd 18602 df-mulg 18873 df-cntz 19097 df-cmn 19564 df-psmet 20788 df-xmet 20789 df-met 20790 df-bl 20791 df-mopn 20792 df-fbas 20793 df-fg 20794 df-cnfld 20797 df-top 22243 df-topon 22260 df-topsp 22282 df-bases 22296 df-cld 22370 df-ntr 22371 df-cls 22372 df-nei 22449 df-cn 22578 df-cnp 22579 df-lm 22580 df-haus 22666 df-tx 22913 df-hmeo 23106 df-fil 23197 df-fm 23289 df-flim 23290 df-flf 23291 df-xms 23673 df-ms 23674 df-tms 23675 df-cfil 24619 df-cau 24620 df-cmet 24621 df-grpo 29435 df-gid 29436 df-ginv 29437 df-gdiv 29438 df-ablo 29487 df-vc 29501 df-nv 29534 df-va 29537 df-ba 29538 df-sm 29539 df-0v 29540 df-vs 29541 df-nmcv 29542 df-ims 29543 df-dip 29643 df-ssp 29664 df-ph 29755 df-cbn 29805 df-hnorm 29910 df-hba 29911 df-hvsub 29913 df-hlim 29914 df-hcau 29915 df-sh 30149 df-ch 30163 df-oc 30194 df-ch0 30195 df-shs 30250 df-chj 30252 df-dmd 31223 |
This theorem is referenced by: dmdbr6ati 31365 |
Copyright terms: Public domain | W3C validator |