Metamath Proof Explorer


Theorem fullsetcestrc

Description: The "embedding functor" from the category of sets into the category of extensible structures which sends each set to an extensible structure consisting of the base set slot only is full. (Contributed by AV, 1-Apr-2020)

Ref Expression
Hypotheses funcsetcestrc.s 𝑆 = ( SetCat ‘ 𝑈 )
funcsetcestrc.c 𝐶 = ( Base ‘ 𝑆 )
funcsetcestrc.f ( 𝜑𝐹 = ( 𝑥𝐶 ↦ { ⟨ ( Base ‘ ndx ) , 𝑥 ⟩ } ) )
funcsetcestrc.u ( 𝜑𝑈 ∈ WUni )
funcsetcestrc.o ( 𝜑 → ω ∈ 𝑈 )
funcsetcestrc.g ( 𝜑𝐺 = ( 𝑥𝐶 , 𝑦𝐶 ↦ ( I ↾ ( 𝑦m 𝑥 ) ) ) )
funcsetcestrc.e 𝐸 = ( ExtStrCat ‘ 𝑈 )
Assertion fullsetcestrc ( 𝜑𝐹 ( 𝑆 Full 𝐸 ) 𝐺 )

Proof

Step Hyp Ref Expression
1 funcsetcestrc.s 𝑆 = ( SetCat ‘ 𝑈 )
2 funcsetcestrc.c 𝐶 = ( Base ‘ 𝑆 )
3 funcsetcestrc.f ( 𝜑𝐹 = ( 𝑥𝐶 ↦ { ⟨ ( Base ‘ ndx ) , 𝑥 ⟩ } ) )
4 funcsetcestrc.u ( 𝜑𝑈 ∈ WUni )
5 funcsetcestrc.o ( 𝜑 → ω ∈ 𝑈 )
6 funcsetcestrc.g ( 𝜑𝐺 = ( 𝑥𝐶 , 𝑦𝐶 ↦ ( I ↾ ( 𝑦m 𝑥 ) ) ) )
7 funcsetcestrc.e 𝐸 = ( ExtStrCat ‘ 𝑈 )
8 1 2 3 4 5 6 7 funcsetcestrc ( 𝜑𝐹 ( 𝑆 Func 𝐸 ) 𝐺 )
9 1 2 3 4 5 6 7 funcsetcestrclem8 ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) ⟶ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) )
10 4 adantr ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → 𝑈 ∈ WUni )
11 eqid ( Hom ‘ 𝐸 ) = ( Hom ‘ 𝐸 )
12 1 2 3 4 5 funcsetcestrclem2 ( ( 𝜑𝑎𝐶 ) → ( 𝐹𝑎 ) ∈ 𝑈 )
13 12 adantrr ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝐹𝑎 ) ∈ 𝑈 )
14 1 2 3 4 5 funcsetcestrclem2 ( ( 𝜑𝑏𝐶 ) → ( 𝐹𝑏 ) ∈ 𝑈 )
15 14 adantrl ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝐹𝑏 ) ∈ 𝑈 )
16 eqid ( Base ‘ ( 𝐹𝑎 ) ) = ( Base ‘ ( 𝐹𝑎 ) )
17 eqid ( Base ‘ ( 𝐹𝑏 ) ) = ( Base ‘ ( 𝐹𝑏 ) )
18 7 10 11 13 15 16 17 elestrchom ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( ∈ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ↔ : ( Base ‘ ( 𝐹𝑎 ) ) ⟶ ( Base ‘ ( 𝐹𝑏 ) ) ) )
19 1 2 3 funcsetcestrclem1 ( ( 𝜑𝑎𝐶 ) → ( 𝐹𝑎 ) = { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } )
20 19 adantrr ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝐹𝑎 ) = { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } )
21 20 fveq2d ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( Base ‘ ( 𝐹𝑎 ) ) = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } ) )
22 eqid { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } = { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ }
23 22 1strbas ( 𝑎𝐶𝑎 = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } ) )
24 23 ad2antrl ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → 𝑎 = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑎 ⟩ } ) )
25 21 24 eqtr4d ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( Base ‘ ( 𝐹𝑎 ) ) = 𝑎 )
26 1 2 3 funcsetcestrclem1 ( ( 𝜑𝑏𝐶 ) → ( 𝐹𝑏 ) = { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } )
27 26 adantrl ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝐹𝑏 ) = { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } )
28 27 fveq2d ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( Base ‘ ( 𝐹𝑏 ) ) = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } ) )
29 eqid { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } = { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ }
30 29 1strbas ( 𝑏𝐶𝑏 = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } ) )
31 30 ad2antll ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → 𝑏 = ( Base ‘ { ⟨ ( Base ‘ ndx ) , 𝑏 ⟩ } ) )
32 28 31 eqtr4d ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( Base ‘ ( 𝐹𝑏 ) ) = 𝑏 )
33 25 32 feq23d ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( : ( Base ‘ ( 𝐹𝑎 ) ) ⟶ ( Base ‘ ( 𝐹𝑏 ) ) ↔ : 𝑎𝑏 ) )
34 simpr ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝑎𝐶𝑏𝐶 ) )
35 34 ancomd ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝑏𝐶𝑎𝐶 ) )
36 elmapg ( ( 𝑏𝐶𝑎𝐶 ) → ( ∈ ( 𝑏m 𝑎 ) ↔ : 𝑎𝑏 ) )
37 35 36 syl ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( ∈ ( 𝑏m 𝑎 ) ↔ : 𝑎𝑏 ) )
38 37 biimpar ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ∈ ( 𝑏m 𝑎 ) )
39 equequ2 ( 𝑘 = → ( = 𝑘 = ) )
40 39 adantl ( ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) ∧ 𝑘 = ) → ( = 𝑘 = ) )
41 eqidd ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → = )
42 38 40 41 rspcedvd ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = 𝑘 )
43 1 2 3 4 5 6 funcsetcestrclem6 ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ∧ 𝑘 ∈ ( 𝑏m 𝑎 ) ) → ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) = 𝑘 )
44 43 3expa ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ 𝑘 ∈ ( 𝑏m 𝑎 ) ) → ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) = 𝑘 )
45 44 eqeq2d ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ 𝑘 ∈ ( 𝑏m 𝑎 ) ) → ( = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ↔ = 𝑘 ) )
46 45 rexbidva ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ↔ ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = 𝑘 ) )
47 46 adantr ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ( ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ↔ ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = 𝑘 ) )
48 42 47 mpbird ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) )
49 eqid ( Hom ‘ 𝑆 ) = ( Hom ‘ 𝑆 )
50 1 4 setcbas ( 𝜑𝑈 = ( Base ‘ 𝑆 ) )
51 2 50 eqtr4id ( 𝜑𝐶 = 𝑈 )
52 51 eleq2d ( 𝜑 → ( 𝑎𝐶𝑎𝑈 ) )
53 52 biimpcd ( 𝑎𝐶 → ( 𝜑𝑎𝑈 ) )
54 53 adantr ( ( 𝑎𝐶𝑏𝐶 ) → ( 𝜑𝑎𝑈 ) )
55 54 impcom ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → 𝑎𝑈 )
56 51 eleq2d ( 𝜑 → ( 𝑏𝐶𝑏𝑈 ) )
57 56 biimpcd ( 𝑏𝐶 → ( 𝜑𝑏𝑈 ) )
58 57 adantl ( ( 𝑎𝐶𝑏𝐶 ) → ( 𝜑𝑏𝑈 ) )
59 58 impcom ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → 𝑏𝑈 )
60 1 10 49 55 59 setchom ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( 𝑏m 𝑎 ) )
61 60 rexeqdv ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ↔ ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
62 61 adantr ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ( ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ↔ ∃ 𝑘 ∈ ( 𝑏m 𝑎 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
63 48 62 mpbird ( ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) ∧ : 𝑎𝑏 ) → ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) )
64 63 ex ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( : 𝑎𝑏 → ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
65 33 64 sylbid ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( : ( Base ‘ ( 𝐹𝑎 ) ) ⟶ ( Base ‘ ( 𝐹𝑏 ) ) → ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
66 18 65 sylbid ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( ∈ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) → ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
67 66 ralrimiv ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ∀ ∈ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) )
68 dffo3 ( ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) –onto→ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ↔ ( ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) ⟶ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ∧ ∀ ∈ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ∃ 𝑘 ∈ ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) = ( ( 𝑎 𝐺 𝑏 ) ‘ 𝑘 ) ) )
69 9 67 68 sylanbrc ( ( 𝜑 ∧ ( 𝑎𝐶𝑏𝐶 ) ) → ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) –onto→ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) )
70 69 ralrimivva ( 𝜑 → ∀ 𝑎𝐶𝑏𝐶 ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) –onto→ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) )
71 2 11 49 isfull2 ( 𝐹 ( 𝑆 Full 𝐸 ) 𝐺 ↔ ( 𝐹 ( 𝑆 Func 𝐸 ) 𝐺 ∧ ∀ 𝑎𝐶𝑏𝐶 ( 𝑎 𝐺 𝑏 ) : ( 𝑎 ( Hom ‘ 𝑆 ) 𝑏 ) –onto→ ( ( 𝐹𝑎 ) ( Hom ‘ 𝐸 ) ( 𝐹𝑏 ) ) ) )
72 8 70 71 sylanbrc ( 𝜑𝐹 ( 𝑆 Full 𝐸 ) 𝐺 )