Metamath Proof Explorer


Theorem oppcval

Description: Value of the opposite category. (Contributed by Mario Carneiro, 2-Jan-2017)

Ref Expression
Hypotheses oppcval.b 𝐵 = ( Base ‘ 𝐶 )
oppcval.h 𝐻 = ( Hom ‘ 𝐶 )
oppcval.x · = ( comp ‘ 𝐶 )
oppcval.o 𝑂 = ( oppCat ‘ 𝐶 )
Assertion oppcval ( 𝐶𝑉𝑂 = ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) )

Proof

Step Hyp Ref Expression
1 oppcval.b 𝐵 = ( Base ‘ 𝐶 )
2 oppcval.h 𝐻 = ( Hom ‘ 𝐶 )
3 oppcval.x · = ( comp ‘ 𝐶 )
4 oppcval.o 𝑂 = ( oppCat ‘ 𝐶 )
5 elex ( 𝐶𝑉𝐶 ∈ V )
6 id ( 𝑐 = 𝐶𝑐 = 𝐶 )
7 fveq2 ( 𝑐 = 𝐶 → ( Hom ‘ 𝑐 ) = ( Hom ‘ 𝐶 ) )
8 7 2 syl6eqr ( 𝑐 = 𝐶 → ( Hom ‘ 𝑐 ) = 𝐻 )
9 8 tposeqd ( 𝑐 = 𝐶 → tpos ( Hom ‘ 𝑐 ) = tpos 𝐻 )
10 9 opeq2d ( 𝑐 = 𝐶 → ⟨ ( Hom ‘ ndx ) , tpos ( Hom ‘ 𝑐 ) ⟩ = ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ )
11 6 10 oveq12d ( 𝑐 = 𝐶 → ( 𝑐 sSet ⟨ ( Hom ‘ ndx ) , tpos ( Hom ‘ 𝑐 ) ⟩ ) = ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) )
12 fveq2 ( 𝑐 = 𝐶 → ( Base ‘ 𝑐 ) = ( Base ‘ 𝐶 ) )
13 12 1 syl6eqr ( 𝑐 = 𝐶 → ( Base ‘ 𝑐 ) = 𝐵 )
14 13 sqxpeqd ( 𝑐 = 𝐶 → ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑐 ) ) = ( 𝐵 × 𝐵 ) )
15 fveq2 ( 𝑐 = 𝐶 → ( comp ‘ 𝑐 ) = ( comp ‘ 𝐶 ) )
16 15 3 syl6eqr ( 𝑐 = 𝐶 → ( comp ‘ 𝑐 ) = · )
17 16 oveqd ( 𝑐 = 𝐶 → ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) = ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) )
18 17 tposeqd ( 𝑐 = 𝐶 → tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) = tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) )
19 14 13 18 mpoeq123dv ( 𝑐 = 𝐶 → ( 𝑢 ∈ ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑐 ) ) , 𝑧 ∈ ( Base ‘ 𝑐 ) ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) ) = ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) )
20 19 opeq2d ( 𝑐 = 𝐶 → ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑐 ) ) , 𝑧 ∈ ( Base ‘ 𝑐 ) ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) ) ⟩ = ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ )
21 11 20 oveq12d ( 𝑐 = 𝐶 → ( ( 𝑐 sSet ⟨ ( Hom ‘ ndx ) , tpos ( Hom ‘ 𝑐 ) ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑐 ) ) , 𝑧 ∈ ( Base ‘ 𝑐 ) ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) ) ⟩ ) = ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) )
22 df-oppc oppCat = ( 𝑐 ∈ V ↦ ( ( 𝑐 sSet ⟨ ( Hom ‘ ndx ) , tpos ( Hom ‘ 𝑐 ) ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( ( Base ‘ 𝑐 ) × ( Base ‘ 𝑐 ) ) , 𝑧 ∈ ( Base ‘ 𝑐 ) ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ ( comp ‘ 𝑐 ) ( 1st𝑢 ) ) ) ⟩ ) )
23 ovex ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) ∈ V
24 21 22 23 fvmpt ( 𝐶 ∈ V → ( oppCat ‘ 𝐶 ) = ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) )
25 5 24 syl ( 𝐶𝑉 → ( oppCat ‘ 𝐶 ) = ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) )
26 4 25 syl5eq ( 𝐶𝑉𝑂 = ( ( 𝐶 sSet ⟨ ( Hom ‘ ndx ) , tpos 𝐻 ⟩ ) sSet ⟨ ( comp ‘ ndx ) , ( 𝑢 ∈ ( 𝐵 × 𝐵 ) , 𝑧𝐵 ↦ tpos ( ⟨ 𝑧 , ( 2nd𝑢 ) ⟩ · ( 1st𝑢 ) ) ) ⟩ ) )