![]() |
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 31070 | . 2 ⊢ ((𝐴 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝐴 𝑀ℋ* 𝐵 ↔ ∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) | |
2 | chub2 30279 | . . . . . . . . 9 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) | |
3 | 2 | ancoms 459 | . . . . . . . 8 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → 𝐵 ⊆ (𝑥 ∨ℋ 𝐵)) |
4 | chjcl 30128 | . . . . . . . . 9 ⊢ ((𝑥 ∈ Cℋ ∧ 𝐵 ∈ Cℋ ) → (𝑥 ∨ℋ 𝐵) ∈ Cℋ ) | |
5 | sseq2 3968 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝐵 ⊆ 𝑦 ↔ 𝐵 ⊆ (𝑥 ∨ℋ 𝐵))) | |
6 | ineq1 4163 | . . . . . . . . . . . . 13 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ 𝐴) = ((𝑥 ∨ℋ 𝐵) ∩ 𝐴)) | |
7 | 6 | oveq1d 7366 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵)) |
8 | ineq1 4163 | . . . . . . . . . . . 12 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))) | |
9 | 7, 8 | eqeq12d 2753 | . . . . . . . . . . 11 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → (((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)) ↔ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
10 | 5, 9 | imbi12d 344 | . . . . . . . . . 10 ⊢ (𝑦 = (𝑥 ∨ℋ 𝐵) → ((𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ (𝑥 ∨ℋ 𝐵) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵))))) |
11 | 10 | rspcv 3575 | . . . . . . . . 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 3147 | . . . 4 ⊢ (𝐵 ∈ Cℋ → (∀𝑦 ∈ Cℋ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) → ∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)))) |
17 | chlejb2 30284 | . . . . . . . . . . . . 13 ⊢ ((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) → (𝐵 ⊆ 𝑥 ↔ (𝑥 ∨ℋ 𝐵) = 𝑥)) | |
18 | 17 | biimpa 477 | . . . . . . . . . . . 12 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (𝑥 ∨ℋ 𝐵) = 𝑥) |
19 | 18 | ineq1d 4169 | . . . . . . . . . . 11 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ 𝐴) = (𝑥 ∩ 𝐴)) |
20 | 19 | oveq1d 7366 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∩ 𝐴) ∨ℋ 𝐵)) |
21 | 18 | ineq1d 4169 | . . . . . . . . . 10 ⊢ (((𝐵 ∈ Cℋ ∧ 𝑥 ∈ Cℋ ) ∧ 𝐵 ⊆ 𝑥) → ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) |
22 | 20, 21 | eqeq12d 2753 | . . . . . . . . 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 3162 | . . . . 5 ⊢ (𝐵 ∈ Cℋ → (∀𝑥 ∈ Cℋ (((𝑥 ∨ℋ 𝐵) ∩ 𝐴) ∨ℋ 𝐵) = ((𝑥 ∨ℋ 𝐵) ∩ (𝐴 ∨ℋ 𝐵)) → ∀𝑥 ∈ Cℋ (𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))))) |
27 | sseq2 3968 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (𝐵 ⊆ 𝑥 ↔ 𝐵 ⊆ 𝑦)) | |
28 | ineq1 4163 | . . . . . . . . 9 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ 𝐴) = (𝑦 ∩ 𝐴)) | |
29 | 28 | oveq1d 7366 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = ((𝑦 ∩ 𝐴) ∨ℋ 𝐵)) |
30 | ineq1 4163 | . . . . . . . 8 ⊢ (𝑥 = 𝑦 → (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))) | |
31 | 29, 30 | eqeq12d 2753 | . . . . . . 7 ⊢ (𝑥 = 𝑦 → (((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵)) ↔ ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵)))) |
32 | 27, 31 | imbi12d 344 | . . . . . 6 ⊢ (𝑥 = 𝑦 → ((𝐵 ⊆ 𝑥 → ((𝑥 ∩ 𝐴) ∨ℋ 𝐵) = (𝑥 ∩ (𝐴 ∨ℋ 𝐵))) ↔ (𝐵 ⊆ 𝑦 → ((𝑦 ∩ 𝐴) ∨ℋ 𝐵) = (𝑦 ∩ (𝐴 ∨ℋ 𝐵))))) |
33 | 32 | cbvralvw 3223 | . . . . 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 3062 ∩ cin 3907 ⊆ wss 3908 class class class wbr 5103 (class class class)co 7351 Cℋ cch 29700 ∨ℋ chj 29704 𝑀ℋ* cdmd 29738 |
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 2708 ax-rep 5240 ax-sep 5254 ax-nul 5261 ax-pow 5318 ax-pr 5382 ax-un 7664 ax-inf2 9535 ax-cc 10329 ax-cnex 11065 ax-resscn 11066 ax-1cn 11067 ax-icn 11068 ax-addcl 11069 ax-addrcl 11070 ax-mulcl 11071 ax-mulrcl 11072 ax-mulcom 11073 ax-addass 11074 ax-mulass 11075 ax-distr 11076 ax-i2m1 11077 ax-1ne0 11078 ax-1rid 11079 ax-rnegex 11080 ax-rrecex 11081 ax-cnre 11082 ax-pre-lttri 11083 ax-pre-lttrn 11084 ax-pre-ltadd 11085 ax-pre-mulgt0 11086 ax-pre-sup 11087 ax-addf 11088 ax-mulf 11089 ax-hilex 29770 ax-hfvadd 29771 ax-hvcom 29772 ax-hvass 29773 ax-hv0cl 29774 ax-hvaddid 29775 ax-hfvmul 29776 ax-hvmulid 29777 ax-hvmulass 29778 ax-hvdistr1 29779 ax-hvdistr2 29780 ax-hvmul0 29781 ax-hfi 29850 ax-his1 29853 ax-his2 29854 ax-his3 29855 ax-his4 29856 ax-hcompl 29973 |
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 2539 df-eu 2568 df-clab 2715 df-cleq 2729 df-clel 2815 df-nfc 2887 df-ne 2942 df-nel 3048 df-ral 3063 df-rex 3072 df-rmo 3351 df-reu 3352 df-rab 3406 df-v 3445 df-sbc 3738 df-csb 3854 df-dif 3911 df-un 3913 df-in 3915 df-ss 3925 df-pss 3927 df-nul 4281 df-if 4485 df-pw 4560 df-sn 4585 df-pr 4587 df-tp 4589 df-op 4591 df-uni 4864 df-int 4906 df-iun 4954 df-iin 4955 df-br 5104 df-opab 5166 df-mpt 5187 df-tr 5221 df-id 5529 df-eprel 5535 df-po 5543 df-so 5544 df-fr 5586 df-se 5587 df-we 5588 df-xp 5637 df-rel 5638 df-cnv 5639 df-co 5640 df-dm 5641 df-rn 5642 df-res 5643 df-ima 5644 df-pred 6251 df-ord 6318 df-on 6319 df-lim 6320 df-suc 6321 df-iota 6445 df-fun 6495 df-fn 6496 df-f 6497 df-f1 6498 df-fo 6499 df-f1o 6500 df-fv 6501 df-isom 6502 df-riota 7307 df-ov 7354 df-oprab 7355 df-mpo 7356 df-of 7609 df-om 7795 df-1st 7913 df-2nd 7914 df-supp 8085 df-frecs 8204 df-wrecs 8235 df-recs 8309 df-rdg 8348 df-1o 8404 df-2o 8405 df-oadd 8408 df-omul 8409 df-er 8606 df-map 8725 df-pm 8726 df-ixp 8794 df-en 8842 df-dom 8843 df-sdom 8844 df-fin 8845 df-fsupp 9264 df-fi 9305 df-sup 9336 df-inf 9337 df-oi 9404 df-card 9833 df-acn 9836 df-pnf 11149 df-mnf 11150 df-xr 11151 df-ltxr 11152 df-le 11153 df-sub 11345 df-neg 11346 df-div 11771 df-nn 12112 df-2 12174 df-3 12175 df-4 12176 df-5 12177 df-6 12178 df-7 12179 df-8 12180 df-9 12181 df-n0 12372 df-z 12458 df-dec 12577 df-uz 12722 df-q 12828 df-rp 12870 df-xneg 12987 df-xadd 12988 df-xmul 12989 df-ioo 13222 df-ico 13224 df-icc 13225 df-fz 13379 df-fzo 13522 df-fl 13651 df-seq 13861 df-exp 13922 df-hash 14185 df-cj 14944 df-re 14945 df-im 14946 df-sqrt 15080 df-abs 15081 df-clim 15330 df-rlim 15331 df-sum 15531 df-struct 16979 df-sets 16996 df-slot 17014 df-ndx 17026 df-base 17044 df-ress 17073 df-plusg 17106 df-mulr 17107 df-starv 17108 df-sca 17109 df-vsca 17110 df-ip 17111 df-tset 17112 df-ple 17113 df-ds 17115 df-unif 17116 df-hom 17117 df-cco 17118 df-rest 17264 df-topn 17265 df-0g 17283 df-gsum 17284 df-topgen 17285 df-pt 17286 df-prds 17289 df-xrs 17344 df-qtop 17349 df-imas 17350 df-xps 17352 df-mre 17426 df-mrc 17427 df-acs 17429 df-mgm 18457 df-sgrp 18506 df-mnd 18517 df-submnd 18562 df-mulg 18832 df-cntz 19056 df-cmn 19523 df-psmet 20741 df-xmet 20742 df-met 20743 df-bl 20744 df-mopn 20745 df-fbas 20746 df-fg 20747 df-cnfld 20750 df-top 22195 df-topon 22212 df-topsp 22234 df-bases 22248 df-cld 22322 df-ntr 22323 df-cls 22324 df-nei 22401 df-cn 22530 df-cnp 22531 df-lm 22532 df-haus 22618 df-tx 22865 df-hmeo 23058 df-fil 23149 df-fm 23241 df-flim 23242 df-flf 23243 df-xms 23625 df-ms 23626 df-tms 23627 df-cfil 24571 df-cau 24572 df-cmet 24573 df-grpo 29264 df-gid 29265 df-ginv 29266 df-gdiv 29267 df-ablo 29316 df-vc 29330 df-nv 29363 df-va 29366 df-ba 29367 df-sm 29368 df-0v 29369 df-vs 29370 df-nmcv 29371 df-ims 29372 df-dip 29472 df-ssp 29493 df-ph 29584 df-cbn 29634 df-hnorm 29739 df-hba 29740 df-hvsub 29742 df-hlim 29743 df-hcau 29744 df-sh 29978 df-ch 29992 df-oc 30023 df-ch0 30024 df-shs 30079 df-chj 30081 df-dmd 31052 |
This theorem is referenced by: dmdbr6ati 31194 |
Copyright terms: Public domain | W3C validator |