Metamath Proof Explorer


Theorem ajfval

Description: The adjoint function. (Contributed by NM, 25-Jan-2008) (Revised by Mario Carneiro, 16-Nov-2013) (New usage is discouraged.)

Ref Expression
Hypotheses ajfval.1 𝑋 = ( BaseSet ‘ 𝑈 )
ajfval.2 𝑌 = ( BaseSet ‘ 𝑊 )
ajfval.3 𝑃 = ( ·𝑖OLD𝑈 )
ajfval.4 𝑄 = ( ·𝑖OLD𝑊 )
ajfval.5 𝐴 = ( 𝑈 adj 𝑊 )
Assertion ajfval ( ( 𝑈 ∈ NrmCVec ∧ 𝑊 ∈ NrmCVec ) → 𝐴 = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } )

Proof

Step Hyp Ref Expression
1 ajfval.1 𝑋 = ( BaseSet ‘ 𝑈 )
2 ajfval.2 𝑌 = ( BaseSet ‘ 𝑊 )
3 ajfval.3 𝑃 = ( ·𝑖OLD𝑈 )
4 ajfval.4 𝑄 = ( ·𝑖OLD𝑊 )
5 ajfval.5 𝐴 = ( 𝑈 adj 𝑊 )
6 fveq2 ( 𝑢 = 𝑈 → ( BaseSet ‘ 𝑢 ) = ( BaseSet ‘ 𝑈 ) )
7 6 1 eqtr4di ( 𝑢 = 𝑈 → ( BaseSet ‘ 𝑢 ) = 𝑋 )
8 7 feq2d ( 𝑢 = 𝑈 → ( 𝑡 : ( BaseSet ‘ 𝑢 ) ⟶ ( BaseSet ‘ 𝑤 ) ↔ 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ) )
9 7 feq3d ( 𝑢 = 𝑈 → ( 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ ( BaseSet ‘ 𝑢 ) ↔ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋 ) )
10 fveq2 ( 𝑢 = 𝑈 → ( ·𝑖OLD𝑢 ) = ( ·𝑖OLD𝑈 ) )
11 10 3 eqtr4di ( 𝑢 = 𝑈 → ( ·𝑖OLD𝑢 ) = 𝑃 )
12 11 oveqd ( 𝑢 = 𝑈 → ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) )
13 12 eqeq2d ( 𝑢 = 𝑈 → ( ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ↔ ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
14 13 ralbidv ( 𝑢 = 𝑈 → ( ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ↔ ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
15 7 14 raleqbidv ( 𝑢 = 𝑈 → ( ∀ 𝑥 ∈ ( BaseSet ‘ 𝑢 ) ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ↔ ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
16 8 9 15 3anbi123d ( 𝑢 = 𝑈 → ( ( 𝑡 : ( BaseSet ‘ 𝑢 ) ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ ( BaseSet ‘ 𝑢 ) ∧ ∀ 𝑥 ∈ ( BaseSet ‘ 𝑢 ) ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ) ↔ ( 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋 ∧ ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) ) )
17 16 opabbidv ( 𝑢 = 𝑈 → { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : ( BaseSet ‘ 𝑢 ) ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ ( BaseSet ‘ 𝑢 ) ∧ ∀ 𝑥 ∈ ( BaseSet ‘ 𝑢 ) ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ) } = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋 ∧ ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } )
18 fveq2 ( 𝑤 = 𝑊 → ( BaseSet ‘ 𝑤 ) = ( BaseSet ‘ 𝑊 ) )
19 18 2 eqtr4di ( 𝑤 = 𝑊 → ( BaseSet ‘ 𝑤 ) = 𝑌 )
20 19 feq3d ( 𝑤 = 𝑊 → ( 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ↔ 𝑡 : 𝑋𝑌 ) )
21 19 feq2d ( 𝑤 = 𝑊 → ( 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋𝑠 : 𝑌𝑋 ) )
22 fveq2 ( 𝑤 = 𝑊 → ( ·𝑖OLD𝑤 ) = ( ·𝑖OLD𝑊 ) )
23 22 4 eqtr4di ( 𝑤 = 𝑊 → ( ·𝑖OLD𝑤 ) = 𝑄 )
24 23 oveqd ( 𝑤 = 𝑊 → ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( ( 𝑡𝑥 ) 𝑄 𝑦 ) )
25 24 eqeq1d ( 𝑤 = 𝑊 → ( ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ↔ ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
26 19 25 raleqbidv ( 𝑤 = 𝑊 → ( ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ↔ ∀ 𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
27 26 ralbidv ( 𝑤 = 𝑊 → ( ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ↔ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) )
28 20 21 27 3anbi123d ( 𝑤 = 𝑊 → ( ( 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋 ∧ ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) ↔ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) ) )
29 28 opabbidv ( 𝑤 = 𝑊 → { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋 ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ 𝑋 ∧ ∀ 𝑥𝑋𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } )
30 df-aj adj = ( 𝑢 ∈ NrmCVec , 𝑤 ∈ NrmCVec ↦ { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : ( BaseSet ‘ 𝑢 ) ⟶ ( BaseSet ‘ 𝑤 ) ∧ 𝑠 : ( BaseSet ‘ 𝑤 ) ⟶ ( BaseSet ‘ 𝑢 ) ∧ ∀ 𝑥 ∈ ( BaseSet ‘ 𝑢 ) ∀ 𝑦 ∈ ( BaseSet ‘ 𝑤 ) ( ( 𝑡𝑥 ) ( ·𝑖OLD𝑤 ) 𝑦 ) = ( 𝑥 ( ·𝑖OLD𝑢 ) ( 𝑠𝑦 ) ) ) } )
31 ovex ( 𝑌m 𝑋 ) ∈ V
32 ovex ( 𝑋m 𝑌 ) ∈ V
33 31 32 xpex ( ( 𝑌m 𝑋 ) × ( 𝑋m 𝑌 ) ) ∈ V
34 2 fvexi 𝑌 ∈ V
35 1 fvexi 𝑋 ∈ V
36 34 35 elmap ( 𝑡 ∈ ( 𝑌m 𝑋 ) ↔ 𝑡 : 𝑋𝑌 )
37 35 34 elmap ( 𝑠 ∈ ( 𝑋m 𝑌 ) ↔ 𝑠 : 𝑌𝑋 )
38 36 37 anbi12i ( ( 𝑡 ∈ ( 𝑌m 𝑋 ) ∧ 𝑠 ∈ ( 𝑋m 𝑌 ) ) ↔ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ) )
39 38 biimpri ( ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ) → ( 𝑡 ∈ ( 𝑌m 𝑋 ) ∧ 𝑠 ∈ ( 𝑋m 𝑌 ) ) )
40 39 3adant3 ( ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) → ( 𝑡 ∈ ( 𝑌m 𝑋 ) ∧ 𝑠 ∈ ( 𝑋m 𝑌 ) ) )
41 40 ssopab2i { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } ⊆ { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 ∈ ( 𝑌m 𝑋 ) ∧ 𝑠 ∈ ( 𝑋m 𝑌 ) ) }
42 df-xp ( ( 𝑌m 𝑋 ) × ( 𝑋m 𝑌 ) ) = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 ∈ ( 𝑌m 𝑋 ) ∧ 𝑠 ∈ ( 𝑋m 𝑌 ) ) }
43 41 42 sseqtrri { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } ⊆ ( ( 𝑌m 𝑋 ) × ( 𝑋m 𝑌 ) )
44 33 43 ssexi { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } ∈ V
45 17 29 30 44 ovmpo ( ( 𝑈 ∈ NrmCVec ∧ 𝑊 ∈ NrmCVec ) → ( 𝑈 adj 𝑊 ) = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } )
46 5 45 syl5eq ( ( 𝑈 ∈ NrmCVec ∧ 𝑊 ∈ NrmCVec ) → 𝐴 = { ⟨ 𝑡 , 𝑠 ⟩ ∣ ( 𝑡 : 𝑋𝑌𝑠 : 𝑌𝑋 ∧ ∀ 𝑥𝑋𝑦𝑌 ( ( 𝑡𝑥 ) 𝑄 𝑦 ) = ( 𝑥 𝑃 ( 𝑠𝑦 ) ) ) } )