Users' Mathboxes Mathbox for Brendan Leahy < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  ptrest Structured version   Visualization version   GIF version

Theorem ptrest 33408
Description: Expressing a restriction of a product topology as a product topology. (Contributed by Brendan Leahy, 24-Mar-2019.)
Hypotheses
Ref Expression
ptrest.0 (𝜑𝐴𝑉)
ptrest.1 (𝜑𝐹:𝐴⟶Top)
ptrest.2 ((𝜑𝑘𝐴) → 𝑆𝑊)
Assertion
Ref Expression
ptrest (𝜑 → ((∏t𝐹) ↾t X𝑘𝐴 𝑆) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))))
Distinct variable groups:   𝜑,𝑘   𝐴,𝑘   𝑘,𝐹   𝑘,𝑉
Allowed substitution hints:   𝑆(𝑘)   𝑊(𝑘)

Proof of Theorem ptrest
Dummy variables 𝑢 𝑣 𝑤 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 firest 16093 . . . 4 (fi‘(({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↾t X𝑘𝐴 𝑆)) = ((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆)
2 snex 4908 . . . . . . . 8 { (∏t𝐹)} ∈ V
3 ptrest.0 . . . . . . . . . 10 (𝜑𝐴𝑉)
4 fvex 6201 . . . . . . . . . . 11 (𝐹𝑢) ∈ V
54rgenw 2924 . . . . . . . . . 10 𝑢𝐴 (𝐹𝑢) ∈ V
6 eqid 2622 . . . . . . . . . . 11 (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) = (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))
76mpt2exxg 7244 . . . . . . . . . 10 ((𝐴𝑉 ∧ ∀𝑢𝐴 (𝐹𝑢) ∈ V) → (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V)
83, 5, 7sylancl 694 . . . . . . . . 9 (𝜑 → (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V)
9 rnexg 7098 . . . . . . . . 9 ((𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V → ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V)
108, 9syl 17 . . . . . . . 8 (𝜑 → ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V)
11 unexg 6959 . . . . . . . 8 (({ (∏t𝐹)} ∈ V ∧ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ∈ V) → ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ∈ V)
122, 10, 11sylancr 695 . . . . . . 7 (𝜑 → ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ∈ V)
13 ptrest.2 . . . . . . . . 9 ((𝜑𝑘𝐴) → 𝑆𝑊)
1413ralrimiva 2966 . . . . . . . 8 (𝜑 → ∀𝑘𝐴 𝑆𝑊)
15 ixpexg 7932 . . . . . . . 8 (∀𝑘𝐴 𝑆𝑊X𝑘𝐴 𝑆 ∈ V)
1614, 15syl 17 . . . . . . 7 (𝜑X𝑘𝐴 𝑆 ∈ V)
17 restval 16087 . . . . . . 7 ((({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ∈ V ∧ X𝑘𝐴 𝑆 ∈ V) → (({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↾t X𝑘𝐴 𝑆) = ran (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)))
1812, 16, 17syl2anc 693 . . . . . 6 (𝜑 → (({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↾t X𝑘𝐴 𝑆) = ran (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)))
19 mptun 6025 . . . . . . . . 9 (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)) = ((𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)))
2019rneqi 5352 . . . . . . . 8 ran (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)) = ran ((𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)))
21 rnun 5541 . . . . . . . 8 ran ((𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆))) = (ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)))
2220, 21eqtri 2644 . . . . . . 7 ran (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)) = (ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)))
23 elsni 4194 . . . . . . . . . . . . . 14 (𝑥 ∈ { (∏t𝐹)} → 𝑥 = (∏t𝐹))
2423ineq1d 3813 . . . . . . . . . . . . 13 (𝑥 ∈ { (∏t𝐹)} → (𝑥X𝑘𝐴 𝑆) = ( (∏t𝐹) ∩ X𝑘𝐴 𝑆))
2524mpteq2ia 4740 . . . . . . . . . . . 12 (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) = (𝑥 ∈ { (∏t𝐹)} ↦ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆))
26 fvex 6201 . . . . . . . . . . . . . 14 (∏t𝐹) ∈ V
2726uniex 6953 . . . . . . . . . . . . 13 (∏t𝐹) ∈ V
2827inex1 4799 . . . . . . . . . . . . 13 ( (∏t𝐹) ∩ X𝑘𝐴 𝑆) ∈ V
29 fmptsn 6433 . . . . . . . . . . . . 13 (( (∏t𝐹) ∈ V ∧ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆) ∈ V) → {⟨ (∏t𝐹), ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)⟩} = (𝑥 ∈ { (∏t𝐹)} ↦ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)))
3027, 28, 29mp2an 708 . . . . . . . . . . . 12 {⟨ (∏t𝐹), ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)⟩} = (𝑥 ∈ { (∏t𝐹)} ↦ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆))
3125, 30eqtr4i 2647 . . . . . . . . . . 11 (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) = {⟨ (∏t𝐹), ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)⟩}
3231rneqi 5352 . . . . . . . . . 10 ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) = ran {⟨ (∏t𝐹), ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)⟩}
3327rnsnop 5616 . . . . . . . . . 10 ran {⟨ (∏t𝐹), ( (∏t𝐹) ∩ X𝑘𝐴 𝑆)⟩} = {( (∏t𝐹) ∩ X𝑘𝐴 𝑆)}
3432, 33eqtri 2644 . . . . . . . . 9 ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) = {( (∏t𝐹) ∩ X𝑘𝐴 𝑆)}
35 ptrest.1 . . . . . . . . . . . . . . . 16 (𝜑𝐹:𝐴⟶Top)
3635ffvelrnda 6359 . . . . . . . . . . . . . . 15 ((𝜑𝑘𝐴) → (𝐹𝑘) ∈ Top)
37 inss1 3833 . . . . . . . . . . . . . . 15 ( (𝐹𝑘) ∩ 𝑆) ⊆ (𝐹𝑘)
38 eqid 2622 . . . . . . . . . . . . . . . 16 (𝐹𝑘) = (𝐹𝑘)
3938restuni 20966 . . . . . . . . . . . . . . 15 (((𝐹𝑘) ∈ Top ∧ ( (𝐹𝑘) ∩ 𝑆) ⊆ (𝐹𝑘)) → ( (𝐹𝑘) ∩ 𝑆) = ((𝐹𝑘) ↾t ( (𝐹𝑘) ∩ 𝑆)))
4036, 37, 39sylancl 694 . . . . . . . . . . . . . 14 ((𝜑𝑘𝐴) → ( (𝐹𝑘) ∩ 𝑆) = ((𝐹𝑘) ↾t ( (𝐹𝑘) ∩ 𝑆)))
41 fvex 6201 . . . . . . . . . . . . . . . . 17 (𝐹𝑘) ∈ V
4238restin 20970 . . . . . . . . . . . . . . . . 17 (((𝐹𝑘) ∈ V ∧ 𝑆𝑊) → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑘) ↾t (𝑆 (𝐹𝑘))))
4341, 13, 42sylancr 695 . . . . . . . . . . . . . . . 16 ((𝜑𝑘𝐴) → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑘) ↾t (𝑆 (𝐹𝑘))))
44 incom 3805 . . . . . . . . . . . . . . . . 17 (𝑆 (𝐹𝑘)) = ( (𝐹𝑘) ∩ 𝑆)
4544oveq2i 6661 . . . . . . . . . . . . . . . 16 ((𝐹𝑘) ↾t (𝑆 (𝐹𝑘))) = ((𝐹𝑘) ↾t ( (𝐹𝑘) ∩ 𝑆))
4643, 45syl6eq 2672 . . . . . . . . . . . . . . 15 ((𝜑𝑘𝐴) → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑘) ↾t ( (𝐹𝑘) ∩ 𝑆)))
4746unieqd 4446 . . . . . . . . . . . . . 14 ((𝜑𝑘𝐴) → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑘) ↾t ( (𝐹𝑘) ∩ 𝑆)))
4840, 47eqtr4d 2659 . . . . . . . . . . . . 13 ((𝜑𝑘𝐴) → ( (𝐹𝑘) ∩ 𝑆) = ((𝐹𝑘) ↾t 𝑆))
4948ixpeq2dva 7923 . . . . . . . . . . . 12 (𝜑X𝑘𝐴 ( (𝐹𝑘) ∩ 𝑆) = X𝑘𝐴 ((𝐹𝑘) ↾t 𝑆))
50 ixpin 7933 . . . . . . . . . . . 12 X𝑘𝐴 ( (𝐹𝑘) ∩ 𝑆) = (X𝑘𝐴 (𝐹𝑘) ∩ X𝑘𝐴 𝑆)
51 nfcv 2764 . . . . . . . . . . . . . 14 𝑦 ((𝐹𝑘) ↾t 𝑆)
52 nfcv 2764 . . . . . . . . . . . . . . . 16 𝑘(𝐹𝑦)
53 nfcv 2764 . . . . . . . . . . . . . . . 16 𝑘t
54 nfcsb1v 3549 . . . . . . . . . . . . . . . 16 𝑘𝑦 / 𝑘𝑆
5552, 53, 54nfov 6676 . . . . . . . . . . . . . . 15 𝑘((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆)
5655nfuni 4442 . . . . . . . . . . . . . 14 𝑘 ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆)
57 fveq2 6191 . . . . . . . . . . . . . . . 16 (𝑘 = 𝑦 → (𝐹𝑘) = (𝐹𝑦))
58 csbeq1a 3542 . . . . . . . . . . . . . . . 16 (𝑘 = 𝑦𝑆 = 𝑦 / 𝑘𝑆)
5957, 58oveq12d 6668 . . . . . . . . . . . . . . 15 (𝑘 = 𝑦 → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
6059unieqd 4446 . . . . . . . . . . . . . 14 (𝑘 = 𝑦 ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
6151, 56, 60cbvixp 7925 . . . . . . . . . . . . 13 X𝑘𝐴 ((𝐹𝑘) ↾t 𝑆) = X𝑦𝐴 ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆)
62 ixpeq2 7922 . . . . . . . . . . . . . 14 (∀𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆) → X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = X𝑦𝐴 ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
63 ovex 6678 . . . . . . . . . . . . . . . 16 ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆) ∈ V
64 nfcv 2764 . . . . . . . . . . . . . . . . 17 𝑘𝑦
65 eqid 2622 . . . . . . . . . . . . . . . . 17 (𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)) = (𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))
6664, 55, 59, 65fvmptf 6301 . . . . . . . . . . . . . . . 16 ((𝑦𝐴 ∧ ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆) ∈ V) → ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
6763, 66mpan2 707 . . . . . . . . . . . . . . 15 (𝑦𝐴 → ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
6867unieqd 4446 . . . . . . . . . . . . . 14 (𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆))
6962, 68mprg 2926 . . . . . . . . . . . . 13 X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = X𝑦𝐴 ((𝐹𝑦) ↾t 𝑦 / 𝑘𝑆)
7061, 69eqtr4i 2647 . . . . . . . . . . . 12 X𝑘𝐴 ((𝐹𝑘) ↾t 𝑆) = X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦)
7149, 50, 703eqtr3g 2679 . . . . . . . . . . 11 (𝜑 → (X𝑘𝐴 (𝐹𝑘) ∩ X𝑘𝐴 𝑆) = X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦))
72 eqid 2622 . . . . . . . . . . . . . 14 (∏t𝐹) = (∏t𝐹)
7372ptuni 21397 . . . . . . . . . . . . 13 ((𝐴𝑉𝐹:𝐴⟶Top) → X𝑘𝐴 (𝐹𝑘) = (∏t𝐹))
743, 35, 73syl2anc 693 . . . . . . . . . . . 12 (𝜑X𝑘𝐴 (𝐹𝑘) = (∏t𝐹))
7574ineq1d 3813 . . . . . . . . . . 11 (𝜑 → (X𝑘𝐴 (𝐹𝑘) ∩ X𝑘𝐴 𝑆) = ( (∏t𝐹) ∩ X𝑘𝐴 𝑆))
76 resttop 20964 . . . . . . . . . . . . . 14 (((𝐹𝑘) ∈ Top ∧ 𝑆𝑊) → ((𝐹𝑘) ↾t 𝑆) ∈ Top)
7736, 13, 76syl2anc 693 . . . . . . . . . . . . 13 ((𝜑𝑘𝐴) → ((𝐹𝑘) ↾t 𝑆) ∈ Top)
7877, 65fmptd 6385 . . . . . . . . . . . 12 (𝜑 → (𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)):𝐴⟶Top)
79 eqid 2622 . . . . . . . . . . . . 13 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))
8079ptuni 21397 . . . . . . . . . . . 12 ((𝐴𝑉 ∧ (𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)):𝐴⟶Top) → X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))))
813, 78, 80syl2anc 693 . . . . . . . . . . 11 (𝜑X𝑦𝐴 ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑦) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))))
8271, 75, 813eqtr3d 2664 . . . . . . . . . 10 (𝜑 → ( (∏t𝐹) ∩ X𝑘𝐴 𝑆) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))))
8382sneqd 4189 . . . . . . . . 9 (𝜑 → {( (∏t𝐹) ∩ X𝑘𝐴 𝑆)} = { (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))})
8434, 83syl5eq 2668 . . . . . . . 8 (𝜑 → ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) = { (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))})
85 vex 3203 . . . . . . . . . . . . . . . . . . . . . . . 24 𝑤 ∈ V
8685elixp 7915 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑤X𝑘𝐴 𝑆 ↔ (𝑤 Fn 𝐴 ∧ ∀𝑘𝐴 (𝑤𝑘) ∈ 𝑆))
8786simprbi 480 . . . . . . . . . . . . . . . . . . . . . 22 (𝑤X𝑘𝐴 𝑆 → ∀𝑘𝐴 (𝑤𝑘) ∈ 𝑆)
88 nfcsb1v 3549 . . . . . . . . . . . . . . . . . . . . . . . 24 𝑘𝑢 / 𝑘𝑆
8988nfel2 2781 . . . . . . . . . . . . . . . . . . . . . . 23 𝑘(𝑤𝑢) ∈ 𝑢 / 𝑘𝑆
90 fveq2 6191 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑘 = 𝑢 → (𝑤𝑘) = (𝑤𝑢))
91 csbeq1a 3542 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑘 = 𝑢𝑆 = 𝑢 / 𝑘𝑆)
9290, 91eleq12d 2695 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑘 = 𝑢 → ((𝑤𝑘) ∈ 𝑆 ↔ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆))
9389, 92rspc 3303 . . . . . . . . . . . . . . . . . . . . . 22 (𝑢𝐴 → (∀𝑘𝐴 (𝑤𝑘) ∈ 𝑆 → (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆))
9487, 93syl5 34 . . . . . . . . . . . . . . . . . . . . 21 (𝑢𝐴 → (𝑤X𝑘𝐴 𝑆 → (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆))
9594pm4.71d 666 . . . . . . . . . . . . . . . . . . . 20 (𝑢𝐴 → (𝑤X𝑘𝐴 𝑆 ↔ (𝑤X𝑘𝐴 𝑆 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆)))
9695anbi2d 740 . . . . . . . . . . . . . . . . . . 19 (𝑢𝐴 → (((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆) ↔ ((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ (𝑤X𝑘𝐴 𝑆 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆))))
97 an4 865 . . . . . . . . . . . . . . . . . . . 20 (((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ (𝑤X𝑘𝐴 𝑆 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆)) ↔ ((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ ((𝑤𝑢) ∈ 𝑣 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆)))
98 elin 3796 . . . . . . . . . . . . . . . . . . . . 21 ((𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆) ↔ ((𝑤𝑢) ∈ 𝑣 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆))
9998anbi2i 730 . . . . . . . . . . . . . . . . . . . 20 (((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆)) ↔ ((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ ((𝑤𝑢) ∈ 𝑣 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆)))
10097, 99bitr4i 267 . . . . . . . . . . . . . . . . . . 19 (((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ (𝑤X𝑘𝐴 𝑆 ∧ (𝑤𝑢) ∈ 𝑢 / 𝑘𝑆)) ↔ ((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆)))
10196, 100syl6bb 276 . . . . . . . . . . . . . . . . . 18 (𝑢𝐴 → (((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆) ↔ ((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))))
102 elin 3796 . . . . . . . . . . . . . . . . . . . 20 (𝑤 ∈ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆) ↔ (𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆))
10382eleq2d 2687 . . . . . . . . . . . . . . . . . . . 20 (𝜑 → (𝑤 ∈ ( (∏t𝐹) ∩ X𝑘𝐴 𝑆) ↔ 𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))))
104102, 103syl5bbr 274 . . . . . . . . . . . . . . . . . . 19 (𝜑 → ((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ↔ 𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))))
105104anbi1d 741 . . . . . . . . . . . . . . . . . 18 (𝜑 → (((𝑤 (∏t𝐹) ∧ 𝑤X𝑘𝐴 𝑆) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆)) ↔ (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))))
106101, 105sylan9bbr 737 . . . . . . . . . . . . . . . . 17 ((𝜑𝑢𝐴) → (((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆) ↔ (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))))
107106abbidv 2741 . . . . . . . . . . . . . . . 16 ((𝜑𝑢𝐴) → {𝑤 ∣ ((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆)} = {𝑤 ∣ (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))})
108 eqid 2622 . . . . . . . . . . . . . . . . . . . 20 (𝑤 (∏t𝐹) ↦ (𝑤𝑢)) = (𝑤 (∏t𝐹) ↦ (𝑤𝑢))
109108mptpreima 5628 . . . . . . . . . . . . . . . . . . 19 ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) = {𝑤 (∏t𝐹) ∣ (𝑤𝑢) ∈ 𝑣}
110 df-rab 2921 . . . . . . . . . . . . . . . . . . 19 {𝑤 (∏t𝐹) ∣ (𝑤𝑢) ∈ 𝑣} = {𝑤 ∣ (𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣)}
111109, 110eqtr2i 2645 . . . . . . . . . . . . . . . . . 18 {𝑤 ∣ (𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣)} = ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)
112 abid2 2745 . . . . . . . . . . . . . . . . . 18 {𝑤𝑤X𝑘𝐴 𝑆} = X𝑘𝐴 𝑆
113111, 112ineq12i 3812 . . . . . . . . . . . . . . . . 17 ({𝑤 ∣ (𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣)} ∩ {𝑤𝑤X𝑘𝐴 𝑆}) = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)
114 inab 3895 . . . . . . . . . . . . . . . . 17 ({𝑤 ∣ (𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣)} ∩ {𝑤𝑤X𝑘𝐴 𝑆}) = {𝑤 ∣ ((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆)}
115113, 114eqtr3i 2646 . . . . . . . . . . . . . . . 16 (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) = {𝑤 ∣ ((𝑤 (∏t𝐹) ∧ (𝑤𝑢) ∈ 𝑣) ∧ 𝑤X𝑘𝐴 𝑆)}
116 eqid 2622 . . . . . . . . . . . . . . . . . 18 (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) = (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢))
117116mptpreima 5628 . . . . . . . . . . . . . . . . 17 ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)) = {𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∣ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆)}
118 df-rab 2921 . . . . . . . . . . . . . . . . 17 {𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∣ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆)} = {𝑤 ∣ (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))}
119117, 118eqtri 2644 . . . . . . . . . . . . . . . 16 ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)) = {𝑤 ∣ (𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ∧ (𝑤𝑢) ∈ (𝑣𝑢 / 𝑘𝑆))}
120107, 115, 1193eqtr4g 2681 . . . . . . . . . . . . . . 15 ((𝜑𝑢𝐴) → (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)))
121120eqeq2d 2632 . . . . . . . . . . . . . 14 ((𝜑𝑢𝐴) → (𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ 𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆))))
122121rexbidv 3052 . . . . . . . . . . . . 13 ((𝜑𝑢𝐴) → (∃𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ ∃𝑣 ∈ (𝐹𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆))))
123 ineq1 3807 . . . . . . . . . . . . . . . 16 (𝑣 = 𝑦 → (𝑣𝑢 / 𝑘𝑆) = (𝑦𝑢 / 𝑘𝑆))
124123imaeq2d 5466 . . . . . . . . . . . . . . 15 (𝑣 = 𝑦 → ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)) = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆)))
125124eqeq2d 2632 . . . . . . . . . . . . . 14 (𝑣 = 𝑦 → (𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)) ↔ 𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆))))
126125cbvrexv 3172 . . . . . . . . . . . . 13 (∃𝑣 ∈ (𝐹𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑣𝑢 / 𝑘𝑆)) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆)))
127122, 126syl6bb 276 . . . . . . . . . . . 12 ((𝜑𝑢𝐴) → (∃𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆))))
128 vex 3203 . . . . . . . . . . . . . . 15 𝑦 ∈ V
129128inex1 4799 . . . . . . . . . . . . . 14 (𝑦𝑢 / 𝑘𝑆) ∈ V
130129a1i 11 . . . . . . . . . . . . 13 (((𝜑𝑢𝐴) ∧ 𝑦 ∈ (𝐹𝑢)) → (𝑦𝑢 / 𝑘𝑆) ∈ V)
131 ovex 6678 . . . . . . . . . . . . . . . . 17 ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆) ∈ V
132 nfcv 2764 . . . . . . . . . . . . . . . . . 18 𝑘𝑢
133 nfcv 2764 . . . . . . . . . . . . . . . . . . 19 𝑘(𝐹𝑢)
134133, 53, 88nfov 6676 . . . . . . . . . . . . . . . . . 18 𝑘((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆)
135 fveq2 6191 . . . . . . . . . . . . . . . . . . 19 (𝑘 = 𝑢 → (𝐹𝑘) = (𝐹𝑢))
136135, 91oveq12d 6668 . . . . . . . . . . . . . . . . . 18 (𝑘 = 𝑢 → ((𝐹𝑘) ↾t 𝑆) = ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆))
137132, 134, 136, 65fvmptf 6301 . . . . . . . . . . . . . . . . 17 ((𝑢𝐴 ∧ ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆) ∈ V) → ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) = ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆))
138131, 137mpan2 707 . . . . . . . . . . . . . . . 16 (𝑢𝐴 → ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) = ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆))
139138adantl 482 . . . . . . . . . . . . . . 15 ((𝜑𝑢𝐴) → ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) = ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆))
140139eleq2d 2687 . . . . . . . . . . . . . 14 ((𝜑𝑢𝐴) → (𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↔ 𝑣 ∈ ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆)))
141 nfv 1843 . . . . . . . . . . . . . . . . 17 𝑘(𝜑𝑢𝐴)
142 nfcsb1v 3549 . . . . . . . . . . . . . . . . . 18 𝑘𝑢 / 𝑘𝑊
14388, 142nfel 2777 . . . . . . . . . . . . . . . . 17 𝑘𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊
144141, 143nfim 1825 . . . . . . . . . . . . . . . 16 𝑘((𝜑𝑢𝐴) → 𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊)
145 eleq1 2689 . . . . . . . . . . . . . . . . . 18 (𝑘 = 𝑢 → (𝑘𝐴𝑢𝐴))
146145anbi2d 740 . . . . . . . . . . . . . . . . 17 (𝑘 = 𝑢 → ((𝜑𝑘𝐴) ↔ (𝜑𝑢𝐴)))
147 csbeq1a 3542 . . . . . . . . . . . . . . . . . 18 (𝑘 = 𝑢𝑊 = 𝑢 / 𝑘𝑊)
14891, 147eleq12d 2695 . . . . . . . . . . . . . . . . 17 (𝑘 = 𝑢 → (𝑆𝑊𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊))
149146, 148imbi12d 334 . . . . . . . . . . . . . . . 16 (𝑘 = 𝑢 → (((𝜑𝑘𝐴) → 𝑆𝑊) ↔ ((𝜑𝑢𝐴) → 𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊)))
150144, 149, 13chvar 2262 . . . . . . . . . . . . . . 15 ((𝜑𝑢𝐴) → 𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊)
151 elrest 16088 . . . . . . . . . . . . . . 15 (((𝐹𝑢) ∈ V ∧ 𝑢 / 𝑘𝑆𝑢 / 𝑘𝑊) → (𝑣 ∈ ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑣 = (𝑦𝑢 / 𝑘𝑆)))
1524, 150, 151sylancr 695 . . . . . . . . . . . . . 14 ((𝜑𝑢𝐴) → (𝑣 ∈ ((𝐹𝑢) ↾t 𝑢 / 𝑘𝑆) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑣 = (𝑦𝑢 / 𝑘𝑆)))
153140, 152bitrd 268 . . . . . . . . . . . . 13 ((𝜑𝑢𝐴) → (𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑣 = (𝑦𝑢 / 𝑘𝑆)))
154 imaeq2 5462 . . . . . . . . . . . . . . 15 (𝑣 = (𝑦𝑢 / 𝑘𝑆) → ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣) = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆)))
155154eqeq2d 2632 . . . . . . . . . . . . . 14 (𝑣 = (𝑦𝑢 / 𝑘𝑆) → (𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣) ↔ 𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆))))
156155adantl 482 . . . . . . . . . . . . 13 (((𝜑𝑢𝐴) ∧ 𝑣 = (𝑦𝑢 / 𝑘𝑆)) → (𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣) ↔ 𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆))))
157130, 153, 156rexxfr2d 4883 . . . . . . . . . . . 12 ((𝜑𝑢𝐴) → (∃𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣) ↔ ∃𝑦 ∈ (𝐹𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ (𝑦𝑢 / 𝑘𝑆))))
158127, 157bitr4d 271 . . . . . . . . . . 11 ((𝜑𝑢𝐴) → (∃𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ ∃𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)))
159158rexbidva 3049 . . . . . . . . . 10 (𝜑 → (∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ ∃𝑢𝐴𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)))
160159abbidv 2741 . . . . . . . . 9 (𝜑 → {𝑥 ∣ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)} = {𝑥 ∣ ∃𝑢𝐴𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)})
161 eqid 2622 . . . . . . . . . . 11 (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)) = (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆))
162161rnmpt 5371 . . . . . . . . . 10 ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)) = {𝑦 ∣ ∃𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆)}
163 nfre1 3005 . . . . . . . . . . 11 𝑥𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆)
164 nfv 1843 . . . . . . . . . . 11 𝑦𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)
16527mptex 6486 . . . . . . . . . . . . . . . 16 (𝑤 (∏t𝐹) ↦ (𝑤𝑢)) ∈ V
166165cnvex 7113 . . . . . . . . . . . . . . 15 (𝑤 (∏t𝐹) ↦ (𝑤𝑢)) ∈ V
167 imaexg 7103 . . . . . . . . . . . . . . 15 ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) ∈ V → ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∈ V)
168166, 167ax-mp 5 . . . . . . . . . . . . . 14 ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∈ V
169168rgen2w 2925 . . . . . . . . . . . . 13 𝑢𝐴𝑣 ∈ (𝐹𝑢)((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∈ V
170 ineq1 3807 . . . . . . . . . . . . . . 15 (𝑥 = ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) → (𝑥X𝑘𝐴 𝑆) = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆))
171170eqeq2d 2632 . . . . . . . . . . . . . 14 (𝑥 = ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) → (𝑦 = (𝑥X𝑘𝐴 𝑆) ↔ 𝑦 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)))
1726, 171rexrnmpt2 6776 . . . . . . . . . . . . 13 (∀𝑢𝐴𝑣 ∈ (𝐹𝑢)((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∈ V → (∃𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆) ↔ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑦 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)))
173169, 172ax-mp 5 . . . . . . . . . . . 12 (∃𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆) ↔ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑦 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆))
174 eqeq1 2626 . . . . . . . . . . . . 13 (𝑦 = 𝑥 → (𝑦 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ 𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)))
1751742rexbidv 3057 . . . . . . . . . . . 12 (𝑦 = 𝑥 → (∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑦 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆) ↔ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)))
176173, 175syl5bb 272 . . . . . . . . . . 11 (𝑦 = 𝑥 → (∃𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆) ↔ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)))
177163, 164, 176cbvab 2746 . . . . . . . . . 10 {𝑦 ∣ ∃𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))𝑦 = (𝑥X𝑘𝐴 𝑆)} = {𝑥 ∣ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)}
178162, 177eqtri 2644 . . . . . . . . 9 ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)) = {𝑥 ∣ ∃𝑢𝐴𝑣 ∈ (𝐹𝑢)𝑥 = (((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣) ∩ X𝑘𝐴 𝑆)}
179 eqid 2622 . . . . . . . . . 10 (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)) = (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))
180179rnmpt2 6770 . . . . . . . . 9 ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)) = {𝑥 ∣ ∃𝑢𝐴𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢)𝑥 = ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)}
181160, 178, 1803eqtr4g 2681 . . . . . . . 8 (𝜑 → ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆)) = ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)))
18284, 181uneq12d 3768 . . . . . . 7 (𝜑 → (ran (𝑥 ∈ { (∏t𝐹)} ↦ (𝑥X𝑘𝐴 𝑆)) ∪ ran (𝑥 ∈ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)) ↦ (𝑥X𝑘𝐴 𝑆))) = ({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))
18322, 182syl5eq 2668 . . . . . 6 (𝜑 → ran (𝑥 ∈ ({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↦ (𝑥X𝑘𝐴 𝑆)) = ({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))
18418, 183eqtrd 2656 . . . . 5 (𝜑 → (({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↾t X𝑘𝐴 𝑆) = ({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))
185184fveq2d 6195 . . . 4 (𝜑 → (fi‘(({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))) ↾t X𝑘𝐴 𝑆)) = (fi‘({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)))))
1861, 185syl5eqr 2670 . . 3 (𝜑 → ((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆) = (fi‘({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣)))))
187186fveq2d 6195 . 2 (𝜑 → (topGen‘((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆)) = (topGen‘(fi‘({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))))
188 eqid 2622 . . . . . 6 (∏t𝐹) = (∏t𝐹)
18972, 188, 6ptval2 21404 . . . . 5 ((𝐴𝑉𝐹:𝐴⟶Top) → (∏t𝐹) = (topGen‘(fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))))))
1903, 35, 189syl2anc 693 . . . 4 (𝜑 → (∏t𝐹) = (topGen‘(fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))))))
191190oveq1d 6665 . . 3 (𝜑 → ((∏t𝐹) ↾t X𝑘𝐴 𝑆) = ((topGen‘(fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))))) ↾t X𝑘𝐴 𝑆))
192 fvex 6201 . . . 4 (fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ∈ V
193 tgrest 20963 . . . 4 (((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ∈ V ∧ X𝑘𝐴 𝑆 ∈ V) → (topGen‘((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆)) = ((topGen‘(fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))))) ↾t X𝑘𝐴 𝑆))
194192, 16, 193sylancr 695 . . 3 (𝜑 → (topGen‘((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆)) = ((topGen‘(fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣))))) ↾t X𝑘𝐴 𝑆))
195191, 194eqtr4d 2659 . 2 (𝜑 → ((∏t𝐹) ↾t X𝑘𝐴 𝑆) = (topGen‘((fi‘({ (∏t𝐹)} ∪ ran (𝑢𝐴, 𝑣 ∈ (𝐹𝑢) ↦ ((𝑤 (∏t𝐹) ↦ (𝑤𝑢)) “ 𝑣)))) ↾t X𝑘𝐴 𝑆)))
196 eqid 2622 . . . 4 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))
19779, 196, 179ptval2 21404 . . 3 ((𝐴𝑉 ∧ (𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)):𝐴⟶Top) → (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) = (topGen‘(fi‘({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))))
1983, 78, 197syl2anc 693 . 2 (𝜑 → (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) = (topGen‘(fi‘({ (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆)))} ∪ ran (𝑢𝐴, 𝑣 ∈ ((𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))‘𝑢) ↦ ((𝑤 (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))) ↦ (𝑤𝑢)) “ 𝑣))))))
199187, 195, 1983eqtr4d 2666 1 (𝜑 → ((∏t𝐹) ↾t X𝑘𝐴 𝑆) = (∏t‘(𝑘𝐴 ↦ ((𝐹𝑘) ↾t 𝑆))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 196  wa 384   = wceq 1483  wcel 1990  {cab 2608  wral 2912  wrex 2913  {crab 2916  Vcvv 3200  csb 3533  cun 3572  cin 3573  wss 3574  {csn 4177  cop 4183   cuni 4436  cmpt 4729  ccnv 5113  ran crn 5115  cima 5117   Fn wfn 5883  wf 5884  cfv 5888  (class class class)co 6650  cmpt2 6652  Xcixp 7908  ficfi 8316  t crest 16081  topGenctg 16098  tcpt 16099  Topctop 20698
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1722  ax-4 1737  ax-5 1839  ax-6 1888  ax-7 1935  ax-8 1992  ax-9 1999  ax-10 2019  ax-11 2034  ax-12 2047  ax-13 2246  ax-ext 2602  ax-rep 4771  ax-sep 4781  ax-nul 4789  ax-pow 4843  ax-pr 4906  ax-un 6949
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-3or 1038  df-3an 1039  df-tru 1486  df-ex 1705  df-nf 1710  df-sb 1881  df-eu 2474  df-mo 2475  df-clab 2609  df-cleq 2615  df-clel 2618  df-nfc 2753  df-ne 2795  df-ral 2917  df-rex 2918  df-reu 2919  df-rab 2921  df-v 3202  df-sbc 3436  df-csb 3534  df-dif 3577  df-un 3579  df-in 3581  df-ss 3588  df-pss 3590  df-nul 3916  df-if 4087  df-pw 4160  df-sn 4178  df-pr 4180  df-tp 4182  df-op 4184  df-uni 4437  df-int 4476  df-iun 4522  df-iin 4523  df-br 4654  df-opab 4713  df-mpt 4730  df-tr 4753  df-id 5024  df-eprel 5029  df-po 5035  df-so 5036  df-fr 5073  df-we 5075  df-xp 5120  df-rel 5121  df-cnv 5122  df-co 5123  df-dm 5124  df-rn 5125  df-res 5126  df-ima 5127  df-pred 5680  df-ord 5726  df-on 5727  df-lim 5728  df-suc 5729  df-iota 5851  df-fun 5890  df-fn 5891  df-f 5892  df-f1 5893  df-fo 5894  df-f1o 5895  df-fv 5896  df-ov 6653  df-oprab 6654  df-mpt2 6655  df-om 7066  df-1st 7168  df-2nd 7169  df-wrecs 7407  df-recs 7468  df-rdg 7506  df-1o 7560  df-oadd 7564  df-er 7742  df-ixp 7909  df-en 7956  df-dom 7957  df-fin 7959  df-fi 8317  df-rest 16083  df-topgen 16104  df-pt 16105  df-top 20699  df-topon 20716  df-bases 20750
This theorem is referenced by:  poimirlem30  33439
  Copyright terms: Public domain W3C validator