Metamath Proof Explorer


Theorem ishtpy

Description: Membership in the class of homotopies between two continuous functions. (Contributed by Mario Carneiro, 22-Feb-2015) (Revised by Mario Carneiro, 5-Sep-2015)

Ref Expression
Hypotheses ishtpy.1 ( 𝜑𝐽 ∈ ( TopOn ‘ 𝑋 ) )
ishtpy.3 ( 𝜑𝐹 ∈ ( 𝐽 Cn 𝐾 ) )
ishtpy.4 ( 𝜑𝐺 ∈ ( 𝐽 Cn 𝐾 ) )
Assertion ishtpy ( 𝜑 → ( 𝐻 ∈ ( 𝐹 ( 𝐽 Htpy 𝐾 ) 𝐺 ) ↔ ( 𝐻 ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∧ ∀ 𝑠𝑋 ( ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 ishtpy.1 ( 𝜑𝐽 ∈ ( TopOn ‘ 𝑋 ) )
2 ishtpy.3 ( 𝜑𝐹 ∈ ( 𝐽 Cn 𝐾 ) )
3 ishtpy.4 ( 𝜑𝐺 ∈ ( 𝐽 Cn 𝐾 ) )
4 df-htpy Htpy = ( 𝑗 ∈ Top , 𝑘 ∈ Top ↦ ( 𝑓 ∈ ( 𝑗 Cn 𝑘 ) , 𝑔 ∈ ( 𝑗 Cn 𝑘 ) ↦ { ∈ ( ( 𝑗 ×t II ) Cn 𝑘 ) ∣ ∀ 𝑠 𝑗 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) )
5 4 a1i ( 𝜑 → Htpy = ( 𝑗 ∈ Top , 𝑘 ∈ Top ↦ ( 𝑓 ∈ ( 𝑗 Cn 𝑘 ) , 𝑔 ∈ ( 𝑗 Cn 𝑘 ) ↦ { ∈ ( ( 𝑗 ×t II ) Cn 𝑘 ) ∣ ∀ 𝑠 𝑗 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) ) )
6 simprl ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → 𝑗 = 𝐽 )
7 simprr ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → 𝑘 = 𝐾 )
8 6 7 oveq12d ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → ( 𝑗 Cn 𝑘 ) = ( 𝐽 Cn 𝐾 ) )
9 6 oveq1d ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → ( 𝑗 ×t II ) = ( 𝐽 ×t II ) )
10 9 7 oveq12d ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → ( ( 𝑗 ×t II ) Cn 𝑘 ) = ( ( 𝐽 ×t II ) Cn 𝐾 ) )
11 6 unieqd ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → 𝑗 = 𝐽 )
12 toponuni ( 𝐽 ∈ ( TopOn ‘ 𝑋 ) → 𝑋 = 𝐽 )
13 1 12 syl ( 𝜑𝑋 = 𝐽 )
14 13 adantr ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → 𝑋 = 𝐽 )
15 11 14 eqtr4d ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → 𝑗 = 𝑋 )
16 15 raleqdv ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → ( ∀ 𝑠 𝑗 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) ↔ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) ) )
17 10 16 rabeqbidv ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → { ∈ ( ( 𝑗 ×t II ) Cn 𝑘 ) ∣ ∀ 𝑠 𝑗 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } = { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } )
18 8 8 17 mpoeq123dv ( ( 𝜑 ∧ ( 𝑗 = 𝐽𝑘 = 𝐾 ) ) → ( 𝑓 ∈ ( 𝑗 Cn 𝑘 ) , 𝑔 ∈ ( 𝑗 Cn 𝑘 ) ↦ { ∈ ( ( 𝑗 ×t II ) Cn 𝑘 ) ∣ ∀ 𝑠 𝑗 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) = ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) )
19 topontop ( 𝐽 ∈ ( TopOn ‘ 𝑋 ) → 𝐽 ∈ Top )
20 1 19 syl ( 𝜑𝐽 ∈ Top )
21 cntop2 ( 𝐹 ∈ ( 𝐽 Cn 𝐾 ) → 𝐾 ∈ Top )
22 2 21 syl ( 𝜑𝐾 ∈ Top )
23 ovex ( ( 𝐽 ×t II ) Cn 𝐾 ) ∈ V
24 ssrab2 { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ⊆ ( ( 𝐽 ×t II ) Cn 𝐾 )
25 23 24 elpwi2 { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ∈ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 )
26 25 rgen2w 𝑓 ∈ ( 𝐽 Cn 𝐾 ) ∀ 𝑔 ∈ ( 𝐽 Cn 𝐾 ) { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ∈ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 )
27 eqid ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) = ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } )
28 27 fmpo ( ∀ 𝑓 ∈ ( 𝐽 Cn 𝐾 ) ∀ 𝑔 ∈ ( 𝐽 Cn 𝐾 ) { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ∈ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 ) ↔ ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) : ( ( 𝐽 Cn 𝐾 ) × ( 𝐽 Cn 𝐾 ) ) ⟶ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 ) )
29 26 28 mpbi ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) : ( ( 𝐽 Cn 𝐾 ) × ( 𝐽 Cn 𝐾 ) ) ⟶ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 )
30 ovex ( 𝐽 Cn 𝐾 ) ∈ V
31 30 30 xpex ( ( 𝐽 Cn 𝐾 ) × ( 𝐽 Cn 𝐾 ) ) ∈ V
32 23 pwex 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 ) ∈ V
33 fex2 ( ( ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) : ( ( 𝐽 Cn 𝐾 ) × ( 𝐽 Cn 𝐾 ) ) ⟶ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 ) ∧ ( ( 𝐽 Cn 𝐾 ) × ( 𝐽 Cn 𝐾 ) ) ∈ V ∧ 𝒫 ( ( 𝐽 ×t II ) Cn 𝐾 ) ∈ V ) → ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) ∈ V )
34 29 31 32 33 mp3an ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) ∈ V
35 34 a1i ( 𝜑 → ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) ∈ V )
36 5 18 20 22 35 ovmpod ( 𝜑 → ( 𝐽 Htpy 𝐾 ) = ( 𝑓 ∈ ( 𝐽 Cn 𝐾 ) , 𝑔 ∈ ( 𝐽 Cn 𝐾 ) ↦ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } ) )
37 fveq1 ( 𝑓 = 𝐹 → ( 𝑓𝑠 ) = ( 𝐹𝑠 ) )
38 37 eqeq2d ( 𝑓 = 𝐹 → ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ↔ ( 𝑠 0 ) = ( 𝐹𝑠 ) ) )
39 fveq1 ( 𝑔 = 𝐺 → ( 𝑔𝑠 ) = ( 𝐺𝑠 ) )
40 39 eqeq2d ( 𝑔 = 𝐺 → ( ( 𝑠 1 ) = ( 𝑔𝑠 ) ↔ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) )
41 38 40 bi2anan9 ( ( 𝑓 = 𝐹𝑔 = 𝐺 ) → ( ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) ↔ ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) ) )
42 41 adantl ( ( 𝜑 ∧ ( 𝑓 = 𝐹𝑔 = 𝐺 ) ) → ( ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) ↔ ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) ) )
43 42 ralbidv ( ( 𝜑 ∧ ( 𝑓 = 𝐹𝑔 = 𝐺 ) ) → ( ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) ↔ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) ) )
44 43 rabbidv ( ( 𝜑 ∧ ( 𝑓 = 𝐹𝑔 = 𝐺 ) ) → { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝑓𝑠 ) ∧ ( 𝑠 1 ) = ( 𝑔𝑠 ) ) } = { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } )
45 23 rabex { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } ∈ V
46 45 a1i ( 𝜑 → { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } ∈ V )
47 36 44 2 3 46 ovmpod ( 𝜑 → ( 𝐹 ( 𝐽 Htpy 𝐾 ) 𝐺 ) = { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } )
48 47 eleq2d ( 𝜑 → ( 𝐻 ∈ ( 𝐹 ( 𝐽 Htpy 𝐾 ) 𝐺 ) ↔ 𝐻 ∈ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } ) )
49 oveq ( = 𝐻 → ( 𝑠 0 ) = ( 𝑠 𝐻 0 ) )
50 49 eqeq1d ( = 𝐻 → ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ↔ ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ) )
51 oveq ( = 𝐻 → ( 𝑠 1 ) = ( 𝑠 𝐻 1 ) )
52 51 eqeq1d ( = 𝐻 → ( ( 𝑠 1 ) = ( 𝐺𝑠 ) ↔ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) )
53 50 52 anbi12d ( = 𝐻 → ( ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) ↔ ( ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) ) )
54 53 ralbidv ( = 𝐻 → ( ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) ↔ ∀ 𝑠𝑋 ( ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) ) )
55 54 elrab ( 𝐻 ∈ { ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∣ ∀ 𝑠𝑋 ( ( 𝑠 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 1 ) = ( 𝐺𝑠 ) ) } ↔ ( 𝐻 ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∧ ∀ 𝑠𝑋 ( ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) ) )
56 48 55 bitrdi ( 𝜑 → ( 𝐻 ∈ ( 𝐹 ( 𝐽 Htpy 𝐾 ) 𝐺 ) ↔ ( 𝐻 ∈ ( ( 𝐽 ×t II ) Cn 𝐾 ) ∧ ∀ 𝑠𝑋 ( ( 𝑠 𝐻 0 ) = ( 𝐹𝑠 ) ∧ ( 𝑠 𝐻 1 ) = ( 𝐺𝑠 ) ) ) ) )