Metamath Proof Explorer


Theorem tmachlem-agreeself

Description: Any tape belongs to its own agreement set. (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-agreeself ( ( 𝜑𝑎𝑇 ) → 𝑎 ∈ ( 𝐴𝑎 ) )

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 reseq1 ( 𝑦 = 𝑎 → ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) )
8 tbtru ( ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) ↔ ( ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) ↔ ⊤ ) )
9 7 8 sylib ( 𝑦 = 𝑎 → ( ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) ↔ ⊤ ) )
10 simpr ( ( 𝜑𝑎𝑇 ) → 𝑎𝑇 )
11 trud ( ( 𝜑𝑎𝑇 ) → ⊤ )
12 9 10 11 elrabd ( ( 𝜑𝑎𝑇 ) → 𝑎 ∈ { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } )
13 fveq2 ( 𝑧 = 𝑎 → ( 𝑆𝑧 ) = ( 𝑆𝑎 ) )
14 13 reseq2d ( 𝑧 = 𝑎 → ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑦 ↾ ( 𝑆𝑎 ) ) )
15 id ( 𝑧 = 𝑎𝑧 = 𝑎 )
16 15 13 reseq12d ( 𝑧 = 𝑎 → ( 𝑧 ↾ ( 𝑆𝑧 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) )
17 14 16 eqeq12d ( 𝑧 = 𝑎 → ( ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑧 ↾ ( 𝑆𝑧 ) ) ↔ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) ) )
18 17 rabbidv ( 𝑧 = 𝑎 → { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑧 ↾ ( 𝑆𝑧 ) ) } = { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } )
19 5 adantr ( ( 𝜑𝑎𝑇 ) → 𝐴 = ( 𝑧𝑇 ↦ { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑧 ) ) = ( 𝑧 ↾ ( 𝑆𝑧 ) ) } ) )
20 1 2 3 4 5 6 tmachlem-extapes ( 𝜑𝑇 ∈ V )
21 ssrab2 { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } ⊆ 𝑇
22 21 a1i ( 𝜑 → { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } ⊆ 𝑇 )
23 20 22 ssexd ( 𝜑 → { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } ∈ V )
24 23 adantr ( ( 𝜑𝑎𝑇 ) → { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } ∈ V )
25 18 19 10 24 fvmptd4 ( ( 𝜑𝑎𝑇 ) → ( 𝐴𝑎 ) = { 𝑦𝑇 ∣ ( 𝑦 ↾ ( 𝑆𝑎 ) ) = ( 𝑎 ↾ ( 𝑆𝑎 ) ) } )
26 12 25 eleqtrrd ( ( 𝜑𝑎𝑇 ) → 𝑎 ∈ ( 𝐴𝑎 ) )