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

Theorem ufileu 22225
Description: If the ultrafilter containing a given filter is unique, the filter is an ultrafilter. (Contributed by Jeff Hankins, 3-Dec-2009.) (Revised by Mario Carneiro, 2-Oct-2015.)
Assertion
Ref Expression
ufileu (𝐹 ∈ (Fil‘𝑋) → (𝐹 ∈ (UFil‘𝑋) ↔ ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓))
Distinct variable groups:   𝑓,𝐹   𝑓,𝑋

Proof of Theorem ufileu
Dummy variables 𝑔 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 ufilfil 22210 . . . . 5 (𝑓 ∈ (UFil‘𝑋) → 𝑓 ∈ (Fil‘𝑋))
2 ufilmax 22213 . . . . . . . 8 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋) ∧ 𝐹𝑓) → 𝐹 = 𝑓)
323expa 1098 . . . . . . 7 (((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) ∧ 𝐹𝑓) → 𝐹 = 𝑓)
43eqcomd 2778 . . . . . 6 (((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) ∧ 𝐹𝑓) → 𝑓 = 𝐹)
54ex 405 . . . . 5 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) → (𝐹𝑓𝑓 = 𝐹))
61, 5sylan2 583 . . . 4 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (UFil‘𝑋)) → (𝐹𝑓𝑓 = 𝐹))
76ralrimiva 3126 . . 3 (𝐹 ∈ (UFil‘𝑋) → ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹))
8 ssid 3873 . . . 4 𝐹𝐹
9 sseq2 3877 . . . . 5 (𝑓 = 𝐹 → (𝐹𝑓𝐹𝐹))
109eqreu 3626 . . . 4 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝐹𝐹 ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹)) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
118, 10mp3an2 1428 . . 3 ((𝐹 ∈ (UFil‘𝑋) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹)) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
127, 11mpdan 674 . 2 (𝐹 ∈ (UFil‘𝑋) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
13 reu6 3623 . . 3 (∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓 ↔ ∃𝑔 ∈ (UFil‘𝑋)∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔))
14 ibibr 361 . . . . . . . . . 10 ((𝑓 = 𝑔𝐹𝑓) ↔ (𝑓 = 𝑔 → (𝐹𝑓𝑓 = 𝑔)))
1514pm5.74ri 264 . . . . . . . . 9 (𝑓 = 𝑔 → (𝐹𝑓 ↔ (𝐹𝑓𝑓 = 𝑔)))
16 sseq2 3877 . . . . . . . . 9 (𝑓 = 𝑔 → (𝐹𝑓𝐹𝑔))
1715, 16bitr3d 273 . . . . . . . 8 (𝑓 = 𝑔 → ((𝐹𝑓𝑓 = 𝑔) ↔ 𝐹𝑔))
1817rspcva 3527 . . . . . . 7 ((𝑔 ∈ (UFil‘𝑋) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹𝑔)
1918adantll 701 . . . . . 6 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹𝑔)
20 ufilfil 22210 . . . . . . . . . 10 (𝑔 ∈ (UFil‘𝑋) → 𝑔 ∈ (Fil‘𝑋))
21 filelss 22158 . . . . . . . . . . 11 ((𝑔 ∈ (Fil‘𝑋) ∧ 𝑥𝑔) → 𝑥𝑋)
2221ex 405 . . . . . . . . . 10 (𝑔 ∈ (Fil‘𝑋) → (𝑥𝑔𝑥𝑋))
2320, 22syl 17 . . . . . . . . 9 (𝑔 ∈ (UFil‘𝑋) → (𝑥𝑔𝑥𝑋))
2423ad2antlr 714 . . . . . . . 8 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔𝑥𝑋))
25 filsspw 22157 . . . . . . . . . . . . . . . . . . . . . 22 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ⊆ 𝒫 𝑋)
2625ad2antrr 713 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ⊆ 𝒫 𝑋)
27 difss 3992 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑋𝑥) ⊆ 𝑋
28 filtop 22161 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝐹 ∈ (Fil‘𝑋) → 𝑋𝐹)
2928ad2antrr 713 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑋𝐹)
30 difexg 5081 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝑋𝐹 → (𝑋𝑥) ∈ V)
3129, 30syl 17 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ V)
32 elpwg 4424 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝑋𝑥) ∈ V → ((𝑋𝑥) ∈ 𝒫 𝑋 ↔ (𝑋𝑥) ⊆ 𝑋))
3331, 32syl 17 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋𝑥) ∈ 𝒫 𝑋 ↔ (𝑋𝑥) ⊆ 𝑋))
3427, 33mpbiri 250 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ 𝒫 𝑋)
3534snssd 4610 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → {(𝑋𝑥)} ⊆ 𝒫 𝑋)
3626, 35unssd 4044 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋)
37 ssun1 4031 . . . . . . . . . . . . . . . . . . . . 21 𝐹 ⊆ (𝐹 ∪ {(𝑋𝑥)})
38 filn0 22168 . . . . . . . . . . . . . . . . . . . . . 22 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ≠ ∅)
3938ad2antrr 713 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ≠ ∅)
40 ssn0 4234 . . . . . . . . . . . . . . . . . . . . 21 ((𝐹 ⊆ (𝐹 ∪ {(𝑋𝑥)}) ∧ 𝐹 ≠ ∅) → (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅)
4137, 39, 40sylancr 578 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅)
42 filelss 22158 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((𝐹 ∈ (Fil‘𝑋) ∧ 𝑓𝐹) → 𝑓𝑋)
4342ad2ant2rl 736 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → 𝑓𝑋)
44 df-ss 3837 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (𝑓𝑋 ↔ (𝑓𝑋) = 𝑓)
4543, 44sylib 210 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (𝑓𝑋) = 𝑓)
4645sseq1d 3882 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → ((𝑓𝑋) ⊆ 𝑥𝑓𝑥))
47 filss 22159 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((𝐹 ∈ (Fil‘𝑋) ∧ (𝑓𝐹𝑥𝑋𝑓𝑥)) → 𝑥𝐹)
48473exp2 1334 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 (𝐹 ∈ (Fil‘𝑋) → (𝑓𝐹 → (𝑥𝑋 → (𝑓𝑥𝑥𝐹))))
4948impcomd 403 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (𝐹 ∈ (Fil‘𝑋) → ((𝑥𝑋𝑓𝐹) → (𝑓𝑥𝑥𝐹)))
5049adantr 473 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) → ((𝑥𝑋𝑓𝐹) → (𝑓𝑥𝑥𝐹)))
5150imp 398 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (𝑓𝑥𝑥𝐹))
5246, 51sylbid 232 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → ((𝑓𝑋) ⊆ 𝑥𝑥𝐹))
5352con3d 150 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (¬ 𝑥𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥))
5453expr 449 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ 𝑥𝑋) → (𝑓𝐹 → (¬ 𝑥𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥)))
5554com23 86 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ 𝑥𝑋) → (¬ 𝑥𝐹 → (𝑓𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥)))
5655impr 447 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑓𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥))
5756imp 398 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → ¬ (𝑓𝑋) ⊆ 𝑥)
58 ineq2 4064 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝑔 = (𝑋𝑥) → (𝑓𝑔) = (𝑓 ∩ (𝑋𝑥)))
5958neeq1d 3020 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝑔 = (𝑋𝑥) → ((𝑓𝑔) ≠ ∅ ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅))
6059ralsng 4481 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝑋𝑥) ∈ V → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅))
61 inssdif0 4209 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝑓𝑋) ⊆ 𝑥 ↔ (𝑓 ∩ (𝑋𝑥)) = ∅)
6261necon3bbii 3008 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (¬ (𝑓𝑋) ⊆ 𝑥 ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅)
6360, 62syl6bbr 281 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((𝑋𝑥) ∈ V → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6431, 63syl 17 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6564adantr 473 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6657, 65mpbird 249 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → ∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅)
6766ralrimiva 3126 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅)
68 filfbas 22154 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ∈ (fBas‘𝑋))
6968ad2antrr 713 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ∈ (fBas‘𝑋))
70 difssd 3993 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ⊆ 𝑋)
71 ssdif0 4203 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝑋𝑥 ↔ (𝑋𝑥) = ∅)
72 eqss 3867 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑥 = 𝑋 ↔ (𝑥𝑋𝑋𝑥))
7372simplbi2 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝑥𝑋 → (𝑋𝑥𝑥 = 𝑋))
74 eleq1 2847 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (𝑥 = 𝑋 → (𝑥𝐹𝑋𝐹))
7574notbid 310 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑥 = 𝑋 → (¬ 𝑥𝐹 ↔ ¬ 𝑋𝐹))
7675biimpcd 241 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 𝑥𝐹 → (𝑥 = 𝑋 → ¬ 𝑋𝐹))
7773, 76sylan9 500 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝑥𝑋 ∧ ¬ 𝑥𝐹) → (𝑋𝑥 → ¬ 𝑋𝐹))
7877adantl 474 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥 → ¬ 𝑋𝐹))
7971, 78syl5bir 235 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋𝑥) = ∅ → ¬ 𝑋𝐹))
8079necon2ad 2976 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝐹 → (𝑋𝑥) ≠ ∅))
8129, 80mpd 15 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ≠ ∅)
82 snfbas 22172 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝑋𝑥) ⊆ 𝑋 ∧ (𝑋𝑥) ≠ ∅ ∧ 𝑋𝐹) → {(𝑋𝑥)} ∈ (fBas‘𝑋))
8370, 81, 29, 82syl3anc 1351 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → {(𝑋𝑥)} ∈ (fBas‘𝑋))
84 fbunfip 22175 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐹 ∈ (fBas‘𝑋) ∧ {(𝑋𝑥)} ∈ (fBas‘𝑋)) → (¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})) ↔ ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅))
8569, 83, 84syl2anc 576 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})) ↔ ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅))
8667, 85mpbird 249 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
87 fsubbas 22173 . . . . . . . . . . . . . . . . . . . . 21 (𝑋𝐹 → ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) ↔ ((𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋 ∧ (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅ ∧ ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))))
8829, 87syl 17 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) ↔ ((𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋 ∧ (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅ ∧ ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))))
8936, 41, 86, 88mpbir3and 1322 . . . . . . . . . . . . . . . . . . 19 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋))
90 fgcl 22184 . . . . . . . . . . . . . . . . . . 19 ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋))
9189, 90syl 17 . . . . . . . . . . . . . . . . . 18 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋))
92 filssufil 22218 . . . . . . . . . . . . . . . . . 18 ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋) → ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓)
9391, 92syl 17 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓)
94 r19.29 3194 . . . . . . . . . . . . . . . . . 18 ((∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) ∧ ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → ∃𝑓 ∈ (UFil‘𝑋)((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓))
95 biimp 207 . . . . . . . . . . . . . . . . . . . . 21 ((𝐹𝑓𝑓 = 𝑔) → (𝐹𝑓𝑓 = 𝑔))
96 simpll 754 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ∈ (Fil‘𝑋))
97 snex 5182 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 {(𝑋𝑥)} ∈ V
98 unexg 7283 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝐹 ∈ (Fil‘𝑋) ∧ {(𝑋𝑥)} ∈ V) → (𝐹 ∪ {(𝑋𝑥)}) ∈ V)
9996, 97, 98sylancl 577 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ∈ V)
100 ssfii 8672 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝐹 ∪ {(𝑋𝑥)}) ∈ V → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
10199, 100syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
102 ssfg 22178 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
10389, 102syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
104101, 103sstrd 3862 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
105104unssad 4045 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
106 sstr2 3859 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐹 ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝐹𝑓))
107105, 106syl 17 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝐹𝑓))
108107imim1d 82 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝐹𝑓𝑓 = 𝑔) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝑓 = 𝑔)))
109 sseq2 3877 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑓 = 𝑔 → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓 ↔ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
110109biimpcd 241 . . . . . . . . . . . . . . . . . . . . . 22 ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓 → (𝑓 = 𝑔 → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
111110a2i 14 . . . . . . . . . . . . . . . . . . . . 21 (((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝑓 = 𝑔) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓 → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
11295, 108, 111syl56 36 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝐹𝑓𝑓 = 𝑔) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓 → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔)))
113112impd 402 . . . . . . . . . . . . . . . . . . 19 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
114113rexlimdvw 3229 . . . . . . . . . . . . . . . . . 18 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∃𝑓 ∈ (UFil‘𝑋)((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
11594, 114syl5 34 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) ∧ ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
11693, 115mpan2d 681 . . . . . . . . . . . . . . . 16 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
117116imp 398 . . . . . . . . . . . . . . 15 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔)
118117an32s 639 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔)
119 snidg 4465 . . . . . . . . . . . . . . . . . 18 ((𝑋𝑥) ∈ V → (𝑋𝑥) ∈ {(𝑋𝑥)})
12031, 119syl 17 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ {(𝑋𝑥)})
121 elun2 4036 . . . . . . . . . . . . . . . . 17 ((𝑋𝑥) ∈ {(𝑋𝑥)} → (𝑋𝑥) ∈ (𝐹 ∪ {(𝑋𝑥)}))
122120, 121syl 17 . . . . . . . . . . . . . . . 16 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝐹 ∪ {(𝑋𝑥)}))
123104, 122sseldd 3853 . . . . . . . . . . . . . . 15 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
124123adantlr 702 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
125118, 124sseldd 3853 . . . . . . . . . . . . 13 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ 𝑔)
126 simpllr 763 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑔 ∈ (UFil‘𝑋))
127 simprl 758 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑥𝑋)
128 ufilb 22212 . . . . . . . . . . . . . 14 ((𝑔 ∈ (UFil‘𝑋) ∧ 𝑥𝑋) → (¬ 𝑥𝑔 ↔ (𝑋𝑥) ∈ 𝑔))
129126, 127, 128syl2anc 576 . . . . . . . . . . . . 13 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (¬ 𝑥𝑔 ↔ (𝑋𝑥) ∈ 𝑔))
130125, 129mpbird 249 . . . . . . . . . . . 12 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ¬ 𝑥𝑔)
131130expr 449 . . . . . . . . . . 11 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ 𝑥𝑋) → (¬ 𝑥𝐹 → ¬ 𝑥𝑔))
132131con4d 115 . . . . . . . . . 10 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ 𝑥𝑋) → (𝑥𝑔𝑥𝐹))
133132ex 405 . . . . . . . . 9 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑋 → (𝑥𝑔𝑥𝐹)))
134133com23 86 . . . . . . . 8 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔 → (𝑥𝑋𝑥𝐹)))
13524, 134mpdd 43 . . . . . . 7 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔𝑥𝐹))
136135ssrdv 3858 . . . . . 6 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝑔𝐹)
13719, 136eqssd 3869 . . . . 5 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹 = 𝑔)
138 simplr 756 . . . . 5 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝑔 ∈ (UFil‘𝑋))
139137, 138eqeltrd 2860 . . . 4 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹 ∈ (UFil‘𝑋))
140139rexlimdva2 3226 . . 3 (𝐹 ∈ (Fil‘𝑋) → (∃𝑔 ∈ (UFil‘𝑋)∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) → 𝐹 ∈ (UFil‘𝑋)))
14113, 140syl5bi 234 . 2 (𝐹 ∈ (Fil‘𝑋) → (∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓𝐹 ∈ (UFil‘𝑋)))
14212, 141impbid2 218 1 (𝐹 ∈ (Fil‘𝑋) → (𝐹 ∈ (UFil‘𝑋) ↔ ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 198  wa 387  w3a 1068   = wceq 1507  wcel 2050  wne 2961  wral 3082  wrex 3083  ∃!wreu 3084  Vcvv 3409  cdif 3820  cun 3821  cin 3822  wss 3823  c0 4172  𝒫 cpw 4416  {csn 4435  cfv 6182  (class class class)co 6970  ficfi 8663  fBascfbas 20229  filGencfg 20230  Filcfil 22151  UFilcufil 22205
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1758  ax-4 1772  ax-5 1869  ax-6 1928  ax-7 1965  ax-8 2052  ax-9 2059  ax-10 2079  ax-11 2093  ax-12 2106  ax-13 2301  ax-ext 2744  ax-rep 5043  ax-sep 5054  ax-nul 5061  ax-pow 5113  ax-pr 5180  ax-un 7273  ax-ac2 9677
This theorem depends on definitions:  df-bi 199  df-an 388  df-or 834  df-3or 1069  df-3an 1070  df-tru 1510  df-ex 1743  df-nf 1747  df-sb 2016  df-mo 2547  df-eu 2584  df-clab 2753  df-cleq 2765  df-clel 2840  df-nfc 2912  df-ne 2962  df-nel 3068  df-ral 3087  df-rex 3088  df-reu 3089  df-rmo 3090  df-rab 3091  df-v 3411  df-sbc 3676  df-csb 3781  df-dif 3826  df-un 3828  df-in 3830  df-ss 3837  df-pss 3839  df-nul 4173  df-if 4345  df-pw 4418  df-sn 4436  df-pr 4438  df-tp 4440  df-op 4442  df-uni 4707  df-int 4744  df-iun 4788  df-br 4924  df-opab 4986  df-mpt 5003  df-tr 5025  df-id 5306  df-eprel 5311  df-po 5320  df-so 5321  df-fr 5360  df-se 5361  df-we 5362  df-xp 5407  df-rel 5408  df-cnv 5409  df-co 5410  df-dm 5411  df-rn 5412  df-res 5413  df-ima 5414  df-pred 5980  df-ord 6026  df-on 6027  df-lim 6028  df-suc 6029  df-iota 6146  df-fun 6184  df-fn 6185  df-f 6186  df-f1 6187  df-fo 6188  df-f1o 6189  df-fv 6190  df-isom 6191  df-riota 6931  df-ov 6973  df-oprab 6974  df-mpo 6975  df-rpss 7261  df-om 7391  df-1st 7495  df-2nd 7496  df-wrecs 7744  df-recs 7806  df-rdg 7844  df-1o 7899  df-oadd 7903  df-er 8083  df-en 8301  df-dom 8302  df-fin 8304  df-fi 8664  df-dju 9118  df-card 9156  df-ac 9330  df-fbas 20238  df-fg 20239  df-fil 22152  df-ufil 22207
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator