Metamath Proof Explorer


Theorem isuplem

Description: Lemma for isup and other theorems. (Contributed by Zhi Wang, 25-Sep-2025)

Ref Expression
Hypotheses upfval.b 𝐵 = ( Base ‘ 𝐷 )
upfval.c 𝐶 = ( Base ‘ 𝐸 )
upfval.h 𝐻 = ( Hom ‘ 𝐷 )
upfval.j 𝐽 = ( Hom ‘ 𝐸 )
upfval.o 𝑂 = ( comp ‘ 𝐸 )
upfval2.w ( 𝜑𝑊𝐶 )
upfval3.f ( 𝜑𝐹 ( 𝐷 Func 𝐸 ) 𝐺 )
Assertion isuplem ( 𝜑 → ( 𝑋 ( ⟨ 𝐹 , 𝐺 ⟩ ( 𝐷 UP 𝐸 ) 𝑊 ) 𝑀 ↔ ( ( 𝑋𝐵𝑀 ∈ ( 𝑊 𝐽 ( 𝐹𝑋 ) ) ) ∧ ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) ) ) )

Proof

Step Hyp Ref Expression
1 upfval.b 𝐵 = ( Base ‘ 𝐷 )
2 upfval.c 𝐶 = ( Base ‘ 𝐸 )
3 upfval.h 𝐻 = ( Hom ‘ 𝐷 )
4 upfval.j 𝐽 = ( Hom ‘ 𝐸 )
5 upfval.o 𝑂 = ( comp ‘ 𝐸 )
6 upfval2.w ( 𝜑𝑊𝐶 )
7 upfval3.f ( 𝜑𝐹 ( 𝐷 Func 𝐸 ) 𝐺 )
8 1 2 3 4 5 6 7 upfval3 ( 𝜑 → ( ⟨ 𝐹 , 𝐺 ⟩ ( 𝐷 UP 𝐸 ) 𝑊 ) = { ⟨ 𝑥 , 𝑚 ⟩ ∣ ( ( 𝑥𝐵𝑚 ∈ ( 𝑊 𝐽 ( 𝐹𝑥 ) ) ) ∧ ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑥 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ) } )
9 oveq1 ( 𝑥 = 𝑋 → ( 𝑥 𝐻 𝑦 ) = ( 𝑋 𝐻 𝑦 ) )
10 fveq2 ( 𝑥 = 𝑋 → ( 𝐹𝑥 ) = ( 𝐹𝑋 ) )
11 10 opeq2d ( 𝑥 = 𝑋 → ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ = ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ )
12 11 oveq1d ( 𝑥 = 𝑋 → ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) = ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) )
13 oveq1 ( 𝑥 = 𝑋 → ( 𝑥 𝐺 𝑦 ) = ( 𝑋 𝐺 𝑦 ) )
14 13 fveq1d ( 𝑥 = 𝑋 → ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) = ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) )
15 eqidd ( 𝑥 = 𝑋𝑚 = 𝑚 )
16 12 14 15 oveq123d ( 𝑥 = 𝑋 → ( ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) )
17 16 eqeq2d ( 𝑥 = 𝑋 → ( 𝑔 = ( ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ) )
18 9 17 reueqbidv ( 𝑥 = 𝑋 → ( ∃! 𝑘 ∈ ( 𝑥 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ) )
19 18 2ralbidv ( 𝑥 = 𝑋 → ( ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑥 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑥 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑥 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ) )
20 oveq2 ( 𝑚 = 𝑀 → ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) )
21 20 eqeq2d ( 𝑚 = 𝑀 → ( 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) ) )
22 21 reubidv ( 𝑚 = 𝑀 → ( ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) ) )
23 22 2ralbidv ( 𝑚 = 𝑀 → ( ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑚 ) ↔ ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) ) )
24 eqidd ( ( 𝑥 = 𝑋𝑚 = 𝑀 ) → 𝐵 = 𝐵 )
25 simpl ( ( 𝑥 = 𝑋𝑚 = 𝑀 ) → 𝑥 = 𝑋 )
26 25 fveq2d ( ( 𝑥 = 𝑋𝑚 = 𝑀 ) → ( 𝐹𝑥 ) = ( 𝐹𝑋 ) )
27 26 oveq2d ( ( 𝑥 = 𝑋𝑚 = 𝑀 ) → ( 𝑊 𝐽 ( 𝐹𝑥 ) ) = ( 𝑊 𝐽 ( 𝐹𝑋 ) ) )
28 8 19 23 24 27 brab2ddw ( 𝜑 → ( 𝑋 ( ⟨ 𝐹 , 𝐺 ⟩ ( 𝐷 UP 𝐸 ) 𝑊 ) 𝑀 ↔ ( ( 𝑋𝐵𝑀 ∈ ( 𝑊 𝐽 ( 𝐹𝑋 ) ) ) ∧ ∀ 𝑦𝐵𝑔 ∈ ( 𝑊 𝐽 ( 𝐹𝑦 ) ) ∃! 𝑘 ∈ ( 𝑋 𝐻 𝑦 ) 𝑔 = ( ( ( 𝑋 𝐺 𝑦 ) ‘ 𝑘 ) ( ⟨ 𝑊 , ( 𝐹𝑋 ) ⟩ 𝑂 ( 𝐹𝑦 ) ) 𝑀 ) ) ) )