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

Theorem pilem3 26837
Description: Lemma for pire 26840, pigt2lt4 26838 and sinpi 26839. Existence part. (Contributed by Paul Chapman, 23-Jan-2008.) (Proof shortened by Mario Carneiro, 18-Jun-2014.) (Revised by AV, 14-Sep-2020.) (Proof shortened by BJ, 30-Jun-2022.)
Assertion
Ref Expression
pilem3 (π ∈ (2(,)4) ∧ (sin‘π) = 0)

Proof of Theorem pilem3
Dummy variables 𝑥 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 2re 12457 . . . . 5 2 ∈ ℝ
21a1i 11 . . . 4 (⊤ → 2 ∈ ℝ)
3 4re 12467 . . . . 5 4 ∈ ℝ
43a1i 11 . . . 4 (⊤ → 4 ∈ ℝ)
5 0red 11350 . . . 4 (⊤ → 0 ∈ ℝ)
6 2lt4 12560 . . . . 5 2 < 4
76a1i 11 . . . 4 (⊤ → 2 < 4)
8 iccssre 13600 . . . . . . 7 ((2 ∈ ℝ ∧ 4 ∈ ℝ) → (2[,]4) ⊆ ℝ)
91, 3, 8mp2an 705 . . . . . 6 (2[,]4) ⊆ ℝ
10 ax-resscn 11296 . . . . . 6 ℝ ⊆ ℂ
119, 10sstri 3922 . . . . 5 (2[,]4) ⊆ ℂ
1211a1i 11 . . . 4 (⊤ → (2[,]4) ⊆ ℂ)
13 sincn 26828 . . . . 5 sin ∈ (ℂ–cn→ℂ)
1413a1i 11 . . . 4 (⊤ → sin ∈ (ℂ–cn→ℂ))
159sseli 3909 . . . . . 6 (𝑦 ∈ (2[,]4) → 𝑦 ∈ ℝ)
1615resincld 16355 . . . . 5 (𝑦 ∈ (2[,]4) → (sin‘𝑦) ∈ ℝ)
1716adantl 487 . . . 4 ((⊤ ∧ 𝑦 ∈ (2[,]4)) → (sin‘𝑦) ∈ ℝ)
18 sin4lt0 16407 . . . . . 6 (sin‘4) < 0
19 sincos2sgn 16406 . . . . . . 7 (0 < (sin‘2) ∧ (cos‘2) < 0)
2019simpli 489 . . . . . 6 0 < (sin‘2)
2118, 20pm3.2i 476 . . . . 5 ((sin‘4) < 0 ∧ 0 < (sin‘2))
2221a1i 11 . . . 4 (⊤ → ((sin‘4) < 0 ∧ 0 < (sin‘2)))
232, 4, 5, 7, 12, 14, 17, 22ivth2 25831 . . 3 (⊤ → ∃𝑥 ∈ (2(,)4)(sin‘𝑥) = 0)
2423mptru 1577 . 2 ∃𝑥 ∈ (2(,)4)(sin‘𝑥) = 0
25 df-pi 16282 . . . . . . 7 π = inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < )
26 inss1 4136 . . . . . . . . 9 (ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ+
27 rpssre 13168 . . . . . . . . 9 ℝ+ ⊆ ℝ
2826, 27sstri 3922 . . . . . . . 8 (ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ
29 0re 11349 . . . . . . . . 9 0 ∈ ℝ
3026sseli 3909 . . . . . . . . . . 11 (𝑧 ∈ (ℝ+ ∩ (◡sin “ {0})) → 𝑧 ∈ ℝ+)
3130rpge0d 13208 . . . . . . . . . 10 (𝑧 ∈ (ℝ+ ∩ (◡sin “ {0})) → 0 ≤ 𝑧)
3231rgen 3082 . . . . . . . . 9 ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))0 ≤ 𝑧
33 breq1 5111 . . . . . . . . . . 11 (𝑦 = 0 → (𝑦 ≤ 𝑧 ↔ 0 ≤ 𝑧))
3433ralbidv 3189 . . . . . . . . . 10 (𝑦 = 0 → (∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧 ↔ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))0 ≤ 𝑧))
3534rspcev 3580 . . . . . . . . 9 ((0 ∈ ℝ ∧ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))0 ≤ 𝑧) → ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧)
3629, 32, 35mp2an 705 . . . . . . . 8 ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧
37 elioore 13546 . . . . . . . . . . 11 (𝑥 ∈ (2(,)4) → 𝑥 ∈ ℝ)
3837adantr 486 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ∈ ℝ)
39 0red 11350 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 0 ∈ ℝ)
401a1i 11 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 2 ∈ ℝ)
41 2pos 12487 . . . . . . . . . . . 12 0 < 2
4241a1i 11 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 0 < 2)
43 eliooord 13576 . . . . . . . . . . . . 13 (𝑥 ∈ (2(,)4) → (2 < 𝑥 ∧ 𝑥 < 4))
4443simpld 500 . . . . . . . . . . . 12 (𝑥 ∈ (2(,)4) → 2 < 𝑥)
4544adantr 486 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 2 < 𝑥)
4639, 40, 38, 42, 45lttrd 11510 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 0 < 𝑥)
4738, 46elrpd 13201 . . . . . . . . 9 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ∈ ℝ+)
48 simpr 490 . . . . . . . . 9 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (sin‘𝑥) = 0)
49 pilem1 26835 . . . . . . . . 9 (𝑥 ∈ (ℝ+ ∩ (◡sin “ {0})) ↔ (𝑥 ∈ ℝ+ ∧ (sin‘𝑥) = 0))
5047, 48, 49sylanbrc 595 . . . . . . . 8 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ∈ (ℝ+ ∩ (◡sin “ {0})))
51 infrelb 12342 . . . . . . . 8 (((ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ ∧ ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧 ∧ 𝑥 ∈ (ℝ+ ∩ (◡sin “ {0}))) → inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ≤ 𝑥)
5228, 36, 50, 51mp3an12i 1495 . . . . . . 7 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ≤ 𝑥)
5325, 52eqbrtrid 5146 . . . . . 6 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → π ≤ 𝑥)
54 simpll 779 . . . . . . . . . . 11 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → 𝑥 ∈ (2(,)4))
55 pilem1 26835 . . . . . . . . . . . . 13 (𝑦 ∈ (ℝ+ ∩ (◡sin “ {0})) ↔ (𝑦 ∈ ℝ+ ∧ (sin‘𝑦) = 0))
5655bilani 510 . . . . . . . . . . . 12 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → (𝑦 ∈ ℝ+ ∧ (sin‘𝑦) = 0))
5756simpld 500 . . . . . . . . . . 11 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → 𝑦 ∈ ℝ+)
58 simplr 781 . . . . . . . . . . 11 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → (sin‘𝑥) = 0)
5956simprd 501 . . . . . . . . . . 11 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → (sin‘𝑦) = 0)
6054, 57, 58, 59pilem2 26836 . . . . . . . . . 10 (((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) ∧ 𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))) → ((π + 𝑥) / 2) ≤ 𝑦)
6160ralrimiva 3158 . . . . . . . . 9 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ∀𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))((π + 𝑥) / 2) ≤ 𝑦)
6228a1i 11 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ)
6350ne0d 4291 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (ℝ+ ∩ (◡sin “ {0})) ≠ ∅)
6436a1i 11 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧)
65 infrecl 12339 . . . . . . . . . . . . . . 15 (((ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ ∧ (ℝ+ ∩ (◡sin “ {0})) ≠ ∅ ∧ ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧) → inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ∈ ℝ)
6628, 36, 65mp3an13 1482 . . . . . . . . . . . . . 14 ((ℝ+ ∩ (◡sin “ {0})) ≠ ∅ → inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ∈ ℝ)
6763, 66syl 18 . . . . . . . . . . . . 13 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ∈ ℝ)
6825, 67eqeltrid 2868 . . . . . . . . . . . 12 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → π ∈ ℝ)
6968, 38readdcld 11377 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (π + 𝑥) ∈ ℝ)
7069rehalfcld 12633 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ((π + 𝑥) / 2) ∈ ℝ)
71 infregelb 12341 . . . . . . . . . 10 ((((ℝ+ ∩ (◡sin “ {0})) ⊆ ℝ ∧ (ℝ+ ∩ (◡sin “ {0})) ≠ ∅ ∧ ∃𝑦 ∈ ℝ ∀𝑧 ∈ (ℝ+ ∩ (◡sin “ {0}))𝑦 ≤ 𝑧) ∧ ((π + 𝑥) / 2) ∈ ℝ) → (((π + 𝑥) / 2) ≤ inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ↔ ∀𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))((π + 𝑥) / 2) ≤ 𝑦))
7262, 63, 64, 70, 71syl31anc 1401 . . . . . . . . 9 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (((π + 𝑥) / 2) ≤ inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ) ↔ ∀𝑦 ∈ (ℝ+ ∩ (◡sin “ {0}))((π + 𝑥) / 2) ≤ 𝑦))
7361, 72mpbird 260 . . . . . . . 8 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ((π + 𝑥) / 2) ≤ inf((ℝ+ ∩ (◡sin “ {0})), ℝ, < ))
7473, 25breqtrrdi 5153 . . . . . . 7 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ((π + 𝑥) / 2) ≤ π)
7568recnd 11376 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → π ∈ ℂ)
7638recnd 11376 . . . . . . . . . . 11 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ∈ ℂ)
7775, 76addcomd 11551 . . . . . . . . . 10 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (π + 𝑥) = (𝑥 + π))
7877oveq1d 7466 . . . . . . . . 9 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → ((π + 𝑥) / 2) = ((𝑥 + π) / 2))
7978breq1d 5118 . . . . . . . 8 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (((π + 𝑥) / 2) ≤ π ↔ ((𝑥 + π) / 2) ≤ π))
80 avgle2 12627 . . . . . . . . 9 ((𝑥 ∈ ℝ ∧ π ∈ ℝ) → (𝑥 ≤ π ↔ ((𝑥 + π) / 2) ≤ π))
8138, 68, 80syl2anc 596 . . . . . . . 8 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (𝑥 ≤ π ↔ ((𝑥 + π) / 2) ≤ π))
8279, 81bitr4d 285 . . . . . . 7 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (((π + 𝑥) / 2) ≤ π ↔ 𝑥 ≤ π))
8374, 82mpbid 235 . . . . . 6 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ≤ π)
8468, 38letri3d 11491 . . . . . 6 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (π = 𝑥 ↔ (π ≤ 𝑥 ∧ 𝑥 ≤ π)))
8553, 83, 84mpbir2and 726 . . . . 5 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → π = 𝑥)
86 simpl 488 . . . . 5 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → 𝑥 ∈ (2(,)4))
8785, 86eqeltrd 2864 . . . 4 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → π ∈ (2(,)4))
8885fveq2d 6920 . . . . 5 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (sin‘π) = (sin‘𝑥))
8988, 48eqtrd 2798 . . . 4 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (sin‘π) = 0)
9087, 89jca 521 . . 3 ((𝑥 ∈ (2(,)4) ∧ (sin‘𝑥) = 0) → (π ∈ (2(,)4) ∧ (sin‘π) = 0))
9190rexlimiva 3159 . 2 (∃𝑥 ∈ (2(,)4)(sin‘𝑥) = 0 → (π ∈ (2(,)4) ∧ (sin‘π) = 0))
9224, 91ax-mp 5 1 (π ∈ (2(,)4) ∧ (sin‘π) = 0)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   ↔ wb 209   ∧ wa 401   = wceq 1570  ⊤wtru 1571   ∈ wcel 2147   ≠ wne 2959  ∀wral 3080  ∃wrex 3090   ⊆ wss 3900   ∩ cin 4092  ∅c0 4281  {csn 4588   class class class wbr 5108  ◡ccnv 5657   “ cima 5661  ‘cfv 6566  (class class class)co 7451  infcinf 9470  ℂcc 11237  ℝcr 11238  0cc0 11239   + caddc 11242   < clt 11382   ≤ cle 11383   / cdiv 12013  2c2 12437  4c4 12439  ℝ+crp 13160  (,)cioo 13516  [,]cicc 13519  sincsin 16273  cosccos 16274  πcpi 16276  –cn→ccncf 25252
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1945  ax-6 2002  ax-7 2043  ax-8 2149  ax-9 2157  ax-10 2180  ax-11 2197  ax-12 2216  ax-ext 2735  ax-rep 5238  ax-sep 5255  ax-nul 5266  ax-pow 5334  ax-pr 5398  ax-un 7783  ax-inf2 9679  ax-cnex 11295  ax-resscn 11296  ax-1cn 11297  ax-icn 11298  ax-addcl 11299  ax-addrcl 11300  ax-mulcl 11301  ax-mulrcl 11302  ax-mulcom 11303  ax-addass 11304  ax-mulass 11305  ax-distr 11306  ax-i2m1 11307  ax-1ne0 11308  ax-1rid 11309  ax-rnegex 11310  ax-rrecex 11311  ax-cnre 11312  ax-pre-lttri 11313  ax-pre-lttrn 11314  ax-pre-ltadd 11315  ax-pre-mulgt0 11316  ax-pre-sup 11317  ax-addf 11318
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2102  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2839  df-nfc 2913  df-ne 2960  df-nel 3066  df-ral 3081  df-rex 3091  df-rmo 3369  df-reu 3370  df-rab 3417  df-v 3456  df-sbc 3743  df-csb 3852  df-ss 3901  df-pss 4017  df-dif 4050  df-in 4094  df-un 4154  df-nul 4282  df-if 4486  df-pw 4562  df-sn 4589  df-pr 4591  df-tp 4593  df-op 4841  df-uni 4873  df-int 4913  df-iun 4958  df-iin 4959  df-br 5109  df-opab 5174  df-mpt 5193  df-tr 5219  df-id 5553  df-eprel 5558  df-po 5566  df-so 5567  df-fr 5611  df-se 5612  df-we 5613  df-xp 5664  df-rel 5665  df-cnv 5666  df-co 5667  df-dm 5668  df-rn 5669  df-res 5670  df-ima 5671  df-pred 6330  df-ord 6391  df-on 6392  df-lim 6393  df-suc 6394  df-iota 6520  df-fun 6568  df-fn 6569  df-f 6570  df-f1 6571  df-fo 6572  df-f1o 6573  df-fv 6574  df-isom 6575  df-riota 7408  df-ov 7454  df-oprab 7455  df-mpo 7456  df-of 7725  df-om 7912  df-1st 8035  df-2nd 8036  df-supp 8215  df-frecs 8337  df-wrecs 8368  df-recs 8417  df-rdg 8456  df-1o 8514  df-2o 8515  df-er 8755  df-map 8887  df-pm 8888  df-ixp 8964  df-en 9012  df-dom 9013  df-sdom 9014  df-fin 9015  df-fsupp 9392  df-fi 9440  df-sup 9471  df-inf 9472  df-oi 9541  df-card 10057  df-pnf 11384  df-mnf 11385  df-xr 11386  df-ltxr 11387  df-le 11388  df-sub 11582  df-neg 11583  df-div 12014  df-nn 12376  df-2 12445  df-3 12446  df-4 12447  df-5 12448  df-6 12449  df-7 12450  df-8 12451  df-9 12452  df-n0 12647  df-z 12734  df-dec 12855  df-uz 13006  df-q 13116  df-rp 13161  df-xneg 13281  df-xadd 13282  df-xmul 13283  df-ioo 13520  df-ioc 13521  df-ico 13522  df-icc 13523  df-fz 13680  df-fzo 13829  df-fl 13972  df-seq 14185  df-exp 14245  df-fac 14459  df-bc 14488  df-hash 14516  df-shft 15263  df-cj 15309  df-re 15310  df-im 15311  df-sqrt 15445  df-abs 15446  df-limsup 15682  df-clim 15699  df-rlim 15700  df-sum 15898  df-ef 16277  df-sin 16279  df-cos 16280  df-pi 16282  df-struct 17369  df-sets 17386  df-slot 17404  df-ndx 17416  df-base 17432  df-ress 17453  df-plusg 17486  df-mulr 17487  df-starv 17488  df-sca 17489  df-vsca 17490  df-ip 17491  df-tset 17492  df-ple 17493  df-ds 17495  df-unif 17496  df-hom 17497  df-cco 17498  df-euf 17499  df-rest 17643  df-topn 17644  df-0g 17662  df-gsum 17663  df-topgen 17664  df-pt 17665  df-prds 17668  df-xrs 17724  df-qtop 17729  df-imas 17730  df-xps 17732  df-mre 17806  df-mrc 17807  df-acs 17809  df-mgm 18866  df-sgrp 18958  df-mnd 18974  df-submnd 19029  df-mulg 19328  df-cntz 19582  df-cmn 20047  df-psmet 21721  df-xmet 21722  df-met 21723  df-bl 21724  df-mopn 21725  df-fbas 21726  df-fg 21727  df-cnfld 21730  df-top 23267  df-topon 23284  df-topsp 23306  df-bases 23319  df-cld 23392  df-ntr 23393  df-cls 23394  df-nei 23471  df-lp 23509  df-perf 23510  df-cn 23600  df-cnp 23601  df-haus 23688  df-tx 23936  df-hmeo 24129  df-fil 24220  df-fm 24312  df-flim 24313  df-flf 24314  df-xms 24694  df-ms 24695  df-tms 24696  df-cncf 25254  df-limc 26241  df-dv 26242
This theorem is used by:  pigt2lt4  26838  sinpi  26839  pire  26840
  Copyright terms: Public domain W3C validator