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

Theorem ufileu 22527
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 22512 . . . . 5 (𝑓 ∈ (UFil‘𝑋) → 𝑓 ∈ (Fil‘𝑋))
2 ufilmax 22515 . . . . . . . 8 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋) ∧ 𝐹𝑓) → 𝐹 = 𝑓)
323expa 1114 . . . . . . 7 (((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) ∧ 𝐹𝑓) → 𝐹 = 𝑓)
43eqcomd 2827 . . . . . 6 (((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) ∧ 𝐹𝑓) → 𝑓 = 𝐹)
54ex 415 . . . . 5 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (Fil‘𝑋)) → (𝐹𝑓𝑓 = 𝐹))
61, 5sylan2 594 . . . 4 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝑓 ∈ (UFil‘𝑋)) → (𝐹𝑓𝑓 = 𝐹))
76ralrimiva 3182 . . 3 (𝐹 ∈ (UFil‘𝑋) → ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹))
8 ssid 3989 . . . 4 𝐹𝐹
9 sseq2 3993 . . . . 5 (𝑓 = 𝐹 → (𝐹𝑓𝐹𝐹))
109eqreu 3720 . . . 4 ((𝐹 ∈ (UFil‘𝑋) ∧ 𝐹𝐹 ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹)) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
118, 10mp3an2 1445 . . 3 ((𝐹 ∈ (UFil‘𝑋) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝐹)) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
127, 11mpdan 685 . 2 (𝐹 ∈ (UFil‘𝑋) → ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓)
13 reu6 3717 . . 3 (∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓 ↔ ∃𝑔 ∈ (UFil‘𝑋)∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔))
14 ibibr 371 . . . . . . . . . 10 ((𝑓 = 𝑔𝐹𝑓) ↔ (𝑓 = 𝑔 → (𝐹𝑓𝑓 = 𝑔)))
1514pm5.74ri 274 . . . . . . . . 9 (𝑓 = 𝑔 → (𝐹𝑓 ↔ (𝐹𝑓𝑓 = 𝑔)))
16 sseq2 3993 . . . . . . . . 9 (𝑓 = 𝑔 → (𝐹𝑓𝐹𝑔))
1715, 16bitr3d 283 . . . . . . . 8 (𝑓 = 𝑔 → ((𝐹𝑓𝑓 = 𝑔) ↔ 𝐹𝑔))
1817rspcva 3621 . . . . . . 7 ((𝑔 ∈ (UFil‘𝑋) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹𝑔)
1918adantll 712 . . . . . 6 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹𝑔)
20 ufilfil 22512 . . . . . . . . . 10 (𝑔 ∈ (UFil‘𝑋) → 𝑔 ∈ (Fil‘𝑋))
21 filelss 22460 . . . . . . . . . . 11 ((𝑔 ∈ (Fil‘𝑋) ∧ 𝑥𝑔) → 𝑥𝑋)
2221ex 415 . . . . . . . . . 10 (𝑔 ∈ (Fil‘𝑋) → (𝑥𝑔𝑥𝑋))
2320, 22syl 17 . . . . . . . . 9 (𝑔 ∈ (UFil‘𝑋) → (𝑥𝑔𝑥𝑋))
2423ad2antlr 725 . . . . . . . 8 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔𝑥𝑋))
25 filsspw 22459 . . . . . . . . . . . . . . . . . . . . . 22 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ⊆ 𝒫 𝑋)
2625ad2antrr 724 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ⊆ 𝒫 𝑋)
27 difss 4108 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑋𝑥) ⊆ 𝑋
28 filtop 22463 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝐹 ∈ (Fil‘𝑋) → 𝑋𝐹)
2928ad2antrr 724 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑋𝐹)
30 difexg 5231 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝑋𝐹 → (𝑋𝑥) ∈ V)
3129, 30syl 17 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ V)
32 elpwg 4542 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝑋𝑥) ∈ V → ((𝑋𝑥) ∈ 𝒫 𝑋 ↔ (𝑋𝑥) ⊆ 𝑋))
3331, 32syl 17 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋𝑥) ∈ 𝒫 𝑋 ↔ (𝑋𝑥) ⊆ 𝑋))
3427, 33mpbiri 260 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ 𝒫 𝑋)
3534snssd 4742 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → {(𝑋𝑥)} ⊆ 𝒫 𝑋)
3626, 35unssd 4162 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋)
37 ssun1 4148 . . . . . . . . . . . . . . . . . . . . 21 𝐹 ⊆ (𝐹 ∪ {(𝑋𝑥)})
38 filn0 22470 . . . . . . . . . . . . . . . . . . . . . 22 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ≠ ∅)
3938ad2antrr 724 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ≠ ∅)
40 ssn0 4354 . . . . . . . . . . . . . . . . . . . . 21 ((𝐹 ⊆ (𝐹 ∪ {(𝑋𝑥)}) ∧ 𝐹 ≠ ∅) → (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅)
4137, 39, 40sylancr 589 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅)
42 filelss 22460 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((𝐹 ∈ (Fil‘𝑋) ∧ 𝑓𝐹) → 𝑓𝑋)
4342ad2ant2rl 747 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → 𝑓𝑋)
44 df-ss 3952 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (𝑓𝑋 ↔ (𝑓𝑋) = 𝑓)
4543, 44sylib 220 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (𝑓𝑋) = 𝑓)
4645sseq1d 3998 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → ((𝑓𝑋) ⊆ 𝑥𝑓𝑥))
47 filss 22461 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((𝐹 ∈ (Fil‘𝑋) ∧ (𝑓𝐹𝑥𝑋𝑓𝑥)) → 𝑥𝐹)
48473exp2 1350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 (𝐹 ∈ (Fil‘𝑋) → (𝑓𝐹 → (𝑥𝑋 → (𝑓𝑥𝑥𝐹))))
4948impcomd 414 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (𝐹 ∈ (Fil‘𝑋) → ((𝑥𝑋𝑓𝐹) → (𝑓𝑥𝑥𝐹)))
5049adantr 483 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) → ((𝑥𝑋𝑓𝐹) → (𝑓𝑥𝑥𝐹)))
5150imp 409 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (𝑓𝑥𝑥𝐹))
5246, 51sylbid 242 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → ((𝑓𝑋) ⊆ 𝑥𝑥𝐹))
5352con3d 155 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋𝑓𝐹)) → (¬ 𝑥𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥))
5453expr 459 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ 𝑥𝑋) → (𝑓𝐹 → (¬ 𝑥𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥)))
5554com23 86 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ 𝑥𝑋) → (¬ 𝑥𝐹 → (𝑓𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥)))
5655impr 457 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑓𝐹 → ¬ (𝑓𝑋) ⊆ 𝑥))
5756imp 409 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → ¬ (𝑓𝑋) ⊆ 𝑥)
58 ineq2 4183 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝑔 = (𝑋𝑥) → (𝑓𝑔) = (𝑓 ∩ (𝑋𝑥)))
5958neeq1d 3075 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝑔 = (𝑋𝑥) → ((𝑓𝑔) ≠ ∅ ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅))
6059ralsng 4613 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝑋𝑥) ∈ V → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅))
61 inssdif0 4329 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝑓𝑋) ⊆ 𝑥 ↔ (𝑓 ∩ (𝑋𝑥)) = ∅)
6261necon3bbii 3063 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (¬ (𝑓𝑋) ⊆ 𝑥 ↔ (𝑓 ∩ (𝑋𝑥)) ≠ ∅)
6360, 62syl6bbr 291 . . . . . . . . . . . . . . . . . . . . . . . . 25 ((𝑋𝑥) ∈ V → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6431, 63syl 17 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6564adantr 483 . . . . . . . . . . . . . . . . . . . . . . 23 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → (∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅ ↔ ¬ (𝑓𝑋) ⊆ 𝑥))
6657, 65mpbird 259 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ 𝑓𝐹) → ∀𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅)
6766ralrimiva 3182 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅)
68 filfbas 22456 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐹 ∈ (Fil‘𝑋) → 𝐹 ∈ (fBas‘𝑋))
6968ad2antrr 724 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ∈ (fBas‘𝑋))
70 difssd 4109 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ⊆ 𝑋)
71 ssdif0 4323 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝑋𝑥 ↔ (𝑋𝑥) = ∅)
72 eqss 3982 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑥 = 𝑋 ↔ (𝑥𝑋𝑋𝑥))
7372simplbi2 503 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝑥𝑋 → (𝑋𝑥𝑥 = 𝑋))
74 eleq1 2900 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (𝑥 = 𝑋 → (𝑥𝐹𝑋𝐹))
7574notbid 320 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑥 = 𝑋 → (¬ 𝑥𝐹 ↔ ¬ 𝑋𝐹))
7675biimpcd 251 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 𝑥𝐹 → (𝑥 = 𝑋 → ¬ 𝑋𝐹))
7773, 76sylan9 510 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝑥𝑋 ∧ ¬ 𝑥𝐹) → (𝑋𝑥 → ¬ 𝑋𝐹))
7877adantl 484 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥 → ¬ 𝑋𝐹))
7971, 78syl5bir 245 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋𝑥) = ∅ → ¬ 𝑋𝐹))
8079necon2ad 3031 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝐹 → (𝑋𝑥) ≠ ∅))
8129, 80mpd 15 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ≠ ∅)
82 snfbas 22474 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝑋𝑥) ⊆ 𝑋 ∧ (𝑋𝑥) ≠ ∅ ∧ 𝑋𝐹) → {(𝑋𝑥)} ∈ (fBas‘𝑋))
8370, 81, 29, 82syl3anc 1367 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → {(𝑋𝑥)} ∈ (fBas‘𝑋))
84 fbunfip 22477 . . . . . . . . . . . . . . . . . . . . . 22 ((𝐹 ∈ (fBas‘𝑋) ∧ {(𝑋𝑥)} ∈ (fBas‘𝑋)) → (¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})) ↔ ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅))
8569, 83, 84syl2anc 586 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})) ↔ ∀𝑓𝐹𝑔 ∈ {(𝑋𝑥)} (𝑓𝑔) ≠ ∅))
8667, 85mpbird 259 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
87 fsubbas 22475 . . . . . . . . . . . . . . . . . . . . 21 (𝑋𝐹 → ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) ↔ ((𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋 ∧ (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅ ∧ ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))))
8829, 87syl 17 . . . . . . . . . . . . . . . . . . . 20 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) ↔ ((𝐹 ∪ {(𝑋𝑥)}) ⊆ 𝒫 𝑋 ∧ (𝐹 ∪ {(𝑋𝑥)}) ≠ ∅ ∧ ¬ ∅ ∈ (fi‘(𝐹 ∪ {(𝑋𝑥)})))))
8936, 41, 86, 88mpbir3and 1338 . . . . . . . . . . . . . . . . . . 19 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋))
90 fgcl 22486 . . . . . . . . . . . . . . . . . . 19 ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋))
9189, 90syl 17 . . . . . . . . . . . . . . . . . 18 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋))
92 filssufil 22520 . . . . . . . . . . . . . . . . . 18 ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ∈ (Fil‘𝑋) → ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓)
9391, 92syl 17 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓)
94 r19.29 3254 . . . . . . . . . . . . . . . . . 18 ((∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) ∧ ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → ∃𝑓 ∈ (UFil‘𝑋)((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓))
95 biimp 217 . . . . . . . . . . . . . . . . . . . . 21 ((𝐹𝑓𝑓 = 𝑔) → (𝐹𝑓𝑓 = 𝑔))
96 simpll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ∈ (Fil‘𝑋))
97 snex 5332 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 {(𝑋𝑥)} ∈ V
98 unexg 7472 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ((𝐹 ∈ (Fil‘𝑋) ∧ {(𝑋𝑥)} ∈ V) → (𝐹 ∪ {(𝑋𝑥)}) ∈ V)
9996, 97, 98sylancl 588 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ∈ V)
100 ssfii 8883 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((𝐹 ∪ {(𝑋𝑥)}) ∈ V → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
10199, 100syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (fi‘(𝐹 ∪ {(𝑋𝑥)})))
102 ssfg 22480 . . . . . . . . . . . . . . . . . . . . . . . . . 26 ((fi‘(𝐹 ∪ {(𝑋𝑥)})) ∈ (fBas‘𝑋) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
10389, 102syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (fi‘(𝐹 ∪ {(𝑋𝑥)})) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
104101, 103sstrd 3977 . . . . . . . . . . . . . . . . . . . . . . . 24 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝐹 ∪ {(𝑋𝑥)}) ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
105104unssad 4163 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝐹 ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
106 sstr2 3974 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐹 ⊆ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝐹𝑓))
107105, 106syl 17 . . . . . . . . . . . . . . . . . . . . . 22 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝐹𝑓))
108107imim1d 82 . . . . . . . . . . . . . . . . . . . . 21 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((𝐹𝑓𝑓 = 𝑔) → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓𝑓 = 𝑔)))
109 sseq2 3993 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑓 = 𝑔 → ((𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓 ↔ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
110109biimpcd 251 . . . . . . . . . . . . . . . . . . . . . 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 413 . . . . . . . . . . . . . . . . . . 19 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
114113rexlimdvw 3290 . . . . . . . . . . . . . . . . . 18 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∃𝑓 ∈ (UFil‘𝑋)((𝐹𝑓𝑓 = 𝑔) ∧ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
11594, 114syl5 34 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ((∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) ∧ ∃𝑓 ∈ (UFil‘𝑋)(𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑓) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
11693, 115mpan2d 692 . . . . . . . . . . . . . . . 16 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔))
117116imp 409 . . . . . . . . . . . . . . 15 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔)
118117an32s 650 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))) ⊆ 𝑔)
119 snidg 4599 . . . . . . . . . . . . . . . . . 18 ((𝑋𝑥) ∈ V → (𝑋𝑥) ∈ {(𝑋𝑥)})
12031, 119syl 17 . . . . . . . . . . . . . . . . 17 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ {(𝑋𝑥)})
121 elun2 4153 . . . . . . . . . . . . . . . . 17 ((𝑋𝑥) ∈ {(𝑋𝑥)} → (𝑋𝑥) ∈ (𝐹 ∪ {(𝑋𝑥)}))
122120, 121syl 17 . . . . . . . . . . . . . . . 16 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝐹 ∪ {(𝑋𝑥)}))
123104, 122sseldd 3968 . . . . . . . . . . . . . . 15 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
124123adantlr 713 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ (𝑋filGen(fi‘(𝐹 ∪ {(𝑋𝑥)}))))
125118, 124sseldd 3968 . . . . . . . . . . . . 13 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (𝑋𝑥) ∈ 𝑔)
126 simpllr 774 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑔 ∈ (UFil‘𝑋))
127 simprl 769 . . . . . . . . . . . . . 14 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → 𝑥𝑋)
128 ufilb 22514 . . . . . . . . . . . . . 14 ((𝑔 ∈ (UFil‘𝑋) ∧ 𝑥𝑋) → (¬ 𝑥𝑔 ↔ (𝑋𝑥) ∈ 𝑔))
129126, 127, 128syl2anc 586 . . . . . . . . . . . . 13 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → (¬ 𝑥𝑔 ↔ (𝑋𝑥) ∈ 𝑔))
130125, 129mpbird 259 . . . . . . . . . . . 12 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ (𝑥𝑋 ∧ ¬ 𝑥𝐹)) → ¬ 𝑥𝑔)
131130expr 459 . . . . . . . . . . 11 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ 𝑥𝑋) → (¬ 𝑥𝐹 → ¬ 𝑥𝑔))
132131con4d 115 . . . . . . . . . 10 ((((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) ∧ 𝑥𝑋) → (𝑥𝑔𝑥𝐹))
133132ex 415 . . . . . . . . 9 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑋 → (𝑥𝑔𝑥𝐹)))
134133com23 86 . . . . . . . 8 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔 → (𝑥𝑋𝑥𝐹)))
13524, 134mpdd 43 . . . . . . 7 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → (𝑥𝑔𝑥𝐹))
136135ssrdv 3973 . . . . . 6 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝑔𝐹)
13719, 136eqssd 3984 . . . . 5 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹 = 𝑔)
138 simplr 767 . . . . 5 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝑔 ∈ (UFil‘𝑋))
139137, 138eqeltrd 2913 . . . 4 (((𝐹 ∈ (Fil‘𝑋) ∧ 𝑔 ∈ (UFil‘𝑋)) ∧ ∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔)) → 𝐹 ∈ (UFil‘𝑋))
140139rexlimdva2 3287 . . 3 (𝐹 ∈ (Fil‘𝑋) → (∃𝑔 ∈ (UFil‘𝑋)∀𝑓 ∈ (UFil‘𝑋)(𝐹𝑓𝑓 = 𝑔) → 𝐹 ∈ (UFil‘𝑋)))
14113, 140syl5bi 244 . 2 (𝐹 ∈ (Fil‘𝑋) → (∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓𝐹 ∈ (UFil‘𝑋)))
14212, 141impbid2 228 1 (𝐹 ∈ (Fil‘𝑋) → (𝐹 ∈ (UFil‘𝑋) ↔ ∃!𝑓 ∈ (UFil‘𝑋)𝐹𝑓))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 208  wa 398  w3a 1083   = wceq 1537  wcel 2114  wne 3016  wral 3138  wrex 3139  ∃!wreu 3140  Vcvv 3494  cdif 3933  cun 3934  cin 3935  wss 3936  c0 4291  𝒫 cpw 4539  {csn 4567  cfv 6355  (class class class)co 7156  ficfi 8874  fBascfbas 20533  filGencfg 20534  Filcfil 22453  UFilcufil 22507
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2793  ax-rep 5190  ax-sep 5203  ax-nul 5210  ax-pow 5266  ax-pr 5330  ax-un 7461  ax-ac2 9885
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-nel 3124  df-ral 3143  df-rex 3144  df-reu 3145  df-rmo 3146  df-rab 3147  df-v 3496  df-sbc 3773  df-csb 3884  df-dif 3939  df-un 3941  df-in 3943  df-ss 3952  df-pss 3954  df-nul 4292  df-if 4468  df-pw 4541  df-sn 4568  df-pr 4570  df-tp 4572  df-op 4574  df-uni 4839  df-int 4877  df-iun 4921  df-br 5067  df-opab 5129  df-mpt 5147  df-tr 5173  df-id 5460  df-eprel 5465  df-po 5474  df-so 5475  df-fr 5514  df-se 5515  df-we 5516  df-xp 5561  df-rel 5562  df-cnv 5563  df-co 5564  df-dm 5565  df-rn 5566  df-res 5567  df-ima 5568  df-pred 6148  df-ord 6194  df-on 6195  df-lim 6196  df-suc 6197  df-iota 6314  df-fun 6357  df-fn 6358  df-f 6359  df-f1 6360  df-fo 6361  df-f1o 6362  df-fv 6363  df-isom 6364  df-riota 7114  df-ov 7159  df-oprab 7160  df-mpo 7161  df-rpss 7449  df-om 7581  df-1st 7689  df-2nd 7690  df-wrecs 7947  df-recs 8008  df-rdg 8046  df-1o 8102  df-oadd 8106  df-er 8289  df-en 8510  df-dom 8511  df-fin 8513  df-fi 8875  df-dju 9330  df-card 9368  df-ac 9542  df-fbas 20542  df-fg 20543  df-fil 22454  df-ufil 22509
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator