Metamath Proof Explorer


Theorem txrest

Description: The subspace of a topological product space induced by a subset with a Cartesian product representation is a topological product of the subspaces induced by the subspaces of the terms of the products. (Contributed by Jeff Madsen, 2-Sep-2009) (Proof shortened by Mario Carneiro, 2-Sep-2015)

Ref Expression
Assertion txrest ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ( 𝑅 ×t 𝑆 ) ↾t ( 𝐴 × 𝐵 ) ) = ( ( 𝑅t 𝐴 ) ×t ( 𝑆t 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 eqid ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) = ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) )
2 1 txval ( ( 𝑅𝑉𝑆𝑊 ) → ( 𝑅 ×t 𝑆 ) = ( topGen ‘ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ) )
3 2 adantr ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( 𝑅 ×t 𝑆 ) = ( topGen ‘ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ) )
4 3 oveq1d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ( 𝑅 ×t 𝑆 ) ↾t ( 𝐴 × 𝐵 ) ) = ( ( topGen ‘ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ) ↾t ( 𝐴 × 𝐵 ) ) )
5 1 txbasex ( ( 𝑅𝑉𝑆𝑊 ) → ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ∈ V )
6 xpexg ( ( 𝐴𝑋𝐵𝑌 ) → ( 𝐴 × 𝐵 ) ∈ V )
7 tgrest ( ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ∈ V ∧ ( 𝐴 × 𝐵 ) ∈ V ) → ( topGen ‘ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ) = ( ( topGen ‘ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ) ↾t ( 𝐴 × 𝐵 ) ) )
8 5 6 7 syl2an ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( topGen ‘ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ) = ( ( topGen ‘ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ) ↾t ( 𝐴 × 𝐵 ) ) )
9 elrest ( ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ∈ V ∧ ( 𝐴 × 𝐵 ) ∈ V ) → ( 𝑥 ∈ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ↔ ∃ 𝑤 ∈ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ) )
10 5 6 9 syl2an ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( 𝑥 ∈ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ↔ ∃ 𝑤 ∈ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ) )
11 vex 𝑟 ∈ V
12 11 inex1 ( 𝑟𝐴 ) ∈ V
13 12 a1i ( ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) ∧ 𝑟𝑅 ) → ( 𝑟𝐴 ) ∈ V )
14 elrest ( ( 𝑅𝑉𝐴𝑋 ) → ( 𝑢 ∈ ( 𝑅t 𝐴 ) ↔ ∃ 𝑟𝑅 𝑢 = ( 𝑟𝐴 ) ) )
15 14 ad2ant2r ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( 𝑢 ∈ ( 𝑅t 𝐴 ) ↔ ∃ 𝑟𝑅 𝑢 = ( 𝑟𝐴 ) ) )
16 xpeq1 ( 𝑢 = ( 𝑟𝐴 ) → ( 𝑢 × 𝑣 ) = ( ( 𝑟𝐴 ) × 𝑣 ) )
17 16 eqeq2d ( 𝑢 = ( 𝑟𝐴 ) → ( 𝑥 = ( 𝑢 × 𝑣 ) ↔ 𝑥 = ( ( 𝑟𝐴 ) × 𝑣 ) ) )
18 17 rexbidv ( 𝑢 = ( 𝑟𝐴 ) → ( ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) ↔ ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( ( 𝑟𝐴 ) × 𝑣 ) ) )
19 vex 𝑠 ∈ V
20 19 inex1 ( 𝑠𝐵 ) ∈ V
21 20 a1i ( ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) ∧ 𝑠𝑆 ) → ( 𝑠𝐵 ) ∈ V )
22 elrest ( ( 𝑆𝑊𝐵𝑌 ) → ( 𝑣 ∈ ( 𝑆t 𝐵 ) ↔ ∃ 𝑠𝑆 𝑣 = ( 𝑠𝐵 ) ) )
23 22 ad2ant2l ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( 𝑣 ∈ ( 𝑆t 𝐵 ) ↔ ∃ 𝑠𝑆 𝑣 = ( 𝑠𝐵 ) ) )
24 xpeq2 ( 𝑣 = ( 𝑠𝐵 ) → ( ( 𝑟𝐴 ) × 𝑣 ) = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) )
25 24 eqeq2d ( 𝑣 = ( 𝑠𝐵 ) → ( 𝑥 = ( ( 𝑟𝐴 ) × 𝑣 ) ↔ 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
26 25 adantl ( ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) ∧ 𝑣 = ( 𝑠𝐵 ) ) → ( 𝑥 = ( ( 𝑟𝐴 ) × 𝑣 ) ↔ 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
27 21 23 26 rexxfr2d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( ( 𝑟𝐴 ) × 𝑣 ) ↔ ∃ 𝑠𝑆 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
28 18 27 sylan9bbr ( ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) ∧ 𝑢 = ( 𝑟𝐴 ) ) → ( ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) ↔ ∃ 𝑠𝑆 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
29 13 15 28 rexxfr2d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ∃ 𝑢 ∈ ( 𝑅t 𝐴 ) ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) ↔ ∃ 𝑟𝑅𝑠𝑆 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
30 11 19 xpex ( 𝑟 × 𝑠 ) ∈ V
31 30 rgen2w 𝑟𝑅𝑠𝑆 ( 𝑟 × 𝑠 ) ∈ V
32 eqid ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) = ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) )
33 ineq1 ( 𝑤 = ( 𝑟 × 𝑠 ) → ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) = ( ( 𝑟 × 𝑠 ) ∩ ( 𝐴 × 𝐵 ) ) )
34 inxp ( ( 𝑟 × 𝑠 ) ∩ ( 𝐴 × 𝐵 ) ) = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) )
35 33 34 eqtrdi ( 𝑤 = ( 𝑟 × 𝑠 ) → ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) )
36 35 eqeq2d ( 𝑤 = ( 𝑟 × 𝑠 ) → ( 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ↔ 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
37 32 36 rexrnmpo ( ∀ 𝑟𝑅𝑠𝑆 ( 𝑟 × 𝑠 ) ∈ V → ( ∃ 𝑤 ∈ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ↔ ∃ 𝑟𝑅𝑠𝑆 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) ) )
38 31 37 ax-mp ( ∃ 𝑤 ∈ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ↔ ∃ 𝑟𝑅𝑠𝑆 𝑥 = ( ( 𝑟𝐴 ) × ( 𝑠𝐵 ) ) )
39 29 38 bitr4di ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ∃ 𝑢 ∈ ( 𝑅t 𝐴 ) ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) ↔ ∃ 𝑤 ∈ ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) 𝑥 = ( 𝑤 ∩ ( 𝐴 × 𝐵 ) ) ) )
40 10 39 bitr4d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( 𝑥 ∈ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ↔ ∃ 𝑢 ∈ ( 𝑅t 𝐴 ) ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) ) )
41 40 abbi2dv ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) = { 𝑥 ∣ ∃ 𝑢 ∈ ( 𝑅t 𝐴 ) ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) } )
42 eqid ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) = ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) )
43 42 rnmpo ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) = { 𝑥 ∣ ∃ 𝑢 ∈ ( 𝑅t 𝐴 ) ∃ 𝑣 ∈ ( 𝑆t 𝐵 ) 𝑥 = ( 𝑢 × 𝑣 ) }
44 41 43 eqtr4di ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) = ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) )
45 44 fveq2d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( topGen ‘ ( ran ( 𝑟𝑅 , 𝑠𝑆 ↦ ( 𝑟 × 𝑠 ) ) ↾t ( 𝐴 × 𝐵 ) ) ) = ( topGen ‘ ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) ) )
46 4 8 45 3eqtr2d ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ( 𝑅 ×t 𝑆 ) ↾t ( 𝐴 × 𝐵 ) ) = ( topGen ‘ ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) ) )
47 ovex ( 𝑅t 𝐴 ) ∈ V
48 ovex ( 𝑆t 𝐵 ) ∈ V
49 eqid ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) = ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) )
50 49 txval ( ( ( 𝑅t 𝐴 ) ∈ V ∧ ( 𝑆t 𝐵 ) ∈ V ) → ( ( 𝑅t 𝐴 ) ×t ( 𝑆t 𝐵 ) ) = ( topGen ‘ ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) ) )
51 47 48 50 mp2an ( ( 𝑅t 𝐴 ) ×t ( 𝑆t 𝐵 ) ) = ( topGen ‘ ran ( 𝑢 ∈ ( 𝑅t 𝐴 ) , 𝑣 ∈ ( 𝑆t 𝐵 ) ↦ ( 𝑢 × 𝑣 ) ) )
52 46 51 eqtr4di ( ( ( 𝑅𝑉𝑆𝑊 ) ∧ ( 𝐴𝑋𝐵𝑌 ) ) → ( ( 𝑅 ×t 𝑆 ) ↾t ( 𝐴 × 𝐵 ) ) = ( ( 𝑅t 𝐴 ) ×t ( 𝑆t 𝐵 ) ) )