Metamath Proof Explorer


Theorem tmachlem-tpopen

Description: Agreement sets are open in the product topology of tapes. (Contributed by Ender Ting, 27-Jul-2026)

Ref Expression
Hypotheses tmach.finalph ( 𝜑𝑈 ∈ Fin )
tmach.exindex ( 𝜑𝐼 ∈ V )
tmach.tapelist ( 𝜑𝑇 = ( 𝑈m 𝐼 ) )
tmach.scanmap ( 𝜑𝑆 : 𝑇 ⟶ ( 𝒫 𝐼 ∩ Fin ) )
tmach.agreemap ( 𝜑𝐴 = ( 𝑧𝑇 ↦ { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑧 ↾ ( 𝑆𝑧 ) ) } ) )
tmach.agreement ( 𝜑 → ∀ 𝑧𝑇𝑦 ∈ ( 𝐴𝑧 ) ( 𝑆𝑦 ) = ( 𝑆𝑧 ) )
Assertion tmachlem-tpopen ( ( 𝜑𝑎𝑇 ) → X 𝑏𝐼 if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) ∈ ( ∏t ‘ ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ) )

Proof

Step Hyp Ref Expression
1 tmach.finalph ( 𝜑𝑈 ∈ Fin )
2 tmach.exindex ( 𝜑𝐼 ∈ V )
3 tmach.tapelist ( 𝜑𝑇 = ( 𝑈m 𝐼 ) )
4 tmach.scanmap ( 𝜑𝑆 : 𝑇 ⟶ ( 𝒫 𝐼 ∩ Fin ) )
5 tmach.agreemap ( 𝜑𝐴 = ( 𝑧𝑇 ↦ { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑧 ↾ ( 𝑆𝑧 ) ) } ) )
6 tmach.agreement ( 𝜑 → ∀ 𝑧𝑇𝑦 ∈ ( 𝐴𝑧 ) ( 𝑆𝑦 ) = ( 𝑆𝑧 ) )
7 2 adantr ( ( 𝜑𝑎𝑇 ) → 𝐼 ∈ V )
8 distop ( 𝑈 ∈ Fin → 𝒫 𝑈 ∈ Top )
9 1 8 syl ( 𝜑 → 𝒫 𝑈 ∈ Top )
10 9 adantr ( ( 𝜑𝑎𝑇 ) → 𝒫 𝑈 ∈ Top )
11 10 adantr ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑖𝐼 ) → 𝒫 𝑈 ∈ Top )
12 11 fmpttd ( ( 𝜑𝑎𝑇 ) → ( 𝑖𝐼 ↦ 𝒫 𝑈 ) : 𝐼 ⟶ Top )
13 1 2 3 4 5 6 tmachlem-finscan ( ( 𝜑𝑎𝑇 ) → ( 𝑆𝑎 ) ∈ Fin )
14 3 eleq2d ( 𝜑 → ( 𝑎𝑇𝑎 ∈ ( 𝑈m 𝐼 ) ) )
15 14 biimpa ( ( 𝜑𝑎𝑇 ) → 𝑎 ∈ ( 𝑈m 𝐼 ) )
16 elmapi ( 𝑎 ∈ ( 𝑈m 𝐼 ) → 𝑎 : 𝐼𝑈 )
17 15 16 syl ( ( 𝜑𝑎𝑇 ) → 𝑎 : 𝐼𝑈 )
18 17 ffvelcdmda ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → ( 𝑎𝑏 ) ∈ 𝑈 )
19 snelpwi ( ( 𝑎𝑏 ) ∈ 𝑈 → { ( 𝑎𝑏 ) } ∈ 𝒫 𝑈 )
20 18 19 syl ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → { ( 𝑎𝑏 ) } ∈ 𝒫 𝑈 )
21 simpll ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → 𝜑 )
22 pwidg ( 𝑈 ∈ Fin → 𝑈 ∈ 𝒫 𝑈 )
23 21 1 22 3syl ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → 𝑈 ∈ 𝒫 𝑈 )
24 20 23 ifcld ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) ∈ 𝒫 𝑈 )
25 1 2 3 4 5 6 tmachlem-tpitem ( ( 𝜑𝑏𝐼 ) → ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) = 𝒫 𝑈 )
26 25 adantlr ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) = 𝒫 𝑈 )
27 24 26 eleqtrrd ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏𝐼 ) → if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) ∈ ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) )
28 eldifn ( 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) → ¬ 𝑏 ∈ ( 𝑆𝑎 ) )
29 28 adantl ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → ¬ 𝑏 ∈ ( 𝑆𝑎 ) )
30 29 iffalsed ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) = 𝑈 )
31 simpll ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → 𝜑 )
32 eldifi ( 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) → 𝑏𝐼 )
33 32 adantl ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → 𝑏𝐼 )
34 31 33 25 syl2anc ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) = 𝒫 𝑈 )
35 34 unieqd ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) = 𝒫 𝑈 )
36 unipw 𝒫 𝑈 = 𝑈
37 35 36 eqtrdi ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) = 𝑈 )
38 30 37 eqtr4d ( ( ( 𝜑𝑎𝑇 ) ∧ 𝑏 ∈ ( 𝐼 ∖ ( 𝑆𝑎 ) ) ) → if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) = ( ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ‘ 𝑏 ) )
39 7 12 13 27 38 ptopn ( ( 𝜑𝑎𝑇 ) → X 𝑏𝐼 if ( 𝑏 ∈ ( 𝑆𝑎 ) , { ( 𝑎𝑏 ) } , 𝑈 ) ∈ ( ∏t ‘ ( 𝑖𝐼 ↦ 𝒫 𝑈 ) ) )