Metamath Proof Explorer


Theorem subfacp1lem3

Description: Lemma for subfacp1 . In subfacp1lem6 we cut up the set of all derangements on 1 ... ( N + 1 ) first according to the value at 1 , and then by whether or not ( f( f1 ) ) = 1 . In this lemma, we show that the subset of all N + 1 derangements that satisfy this for fixed M = ( f1 ) is in bijection with N - 1 derangements, by simply dropping the x = 1 and x = M points from the function to get a derangement on K = ( 1 ... ( N - 1 ) ) \ { 1 , M } . (Contributed by Mario Carneiro, 23-Jan-2015)

Ref Expression
Hypotheses derang.d 𝐷 = ( 𝑥 ∈ Fin ↦ ( ♯ ‘ { 𝑓 ∣ ( 𝑓 : 𝑥1-1-onto𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) ≠ 𝑦 ) } ) )
subfac.n 𝑆 = ( 𝑛 ∈ ℕ0 ↦ ( 𝐷 ‘ ( 1 ... 𝑛 ) ) )
subfacp1lem.a 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) }
subfacp1lem1.n ( 𝜑𝑁 ∈ ℕ )
subfacp1lem1.m ( 𝜑𝑀 ∈ ( 2 ... ( 𝑁 + 1 ) ) )
subfacp1lem1.x 𝑀 ∈ V
subfacp1lem1.k 𝐾 = ( ( 2 ... ( 𝑁 + 1 ) ) ∖ { 𝑀 } )
subfacp1lem3.b 𝐵 = { 𝑔𝐴 ∣ ( ( 𝑔 ‘ 1 ) = 𝑀 ∧ ( 𝑔𝑀 ) = 1 ) }
subfacp1lem3.c 𝐶 = { 𝑓 ∣ ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) }
Assertion subfacp1lem3 ( 𝜑 → ( ♯ ‘ 𝐵 ) = ( 𝑆 ‘ ( 𝑁 − 1 ) ) )

Proof

Step Hyp Ref Expression
1 derang.d 𝐷 = ( 𝑥 ∈ Fin ↦ ( ♯ ‘ { 𝑓 ∣ ( 𝑓 : 𝑥1-1-onto𝑥 ∧ ∀ 𝑦𝑥 ( 𝑓𝑦 ) ≠ 𝑦 ) } ) )
2 subfac.n 𝑆 = ( 𝑛 ∈ ℕ0 ↦ ( 𝐷 ‘ ( 1 ... 𝑛 ) ) )
3 subfacp1lem.a 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) }
4 subfacp1lem1.n ( 𝜑𝑁 ∈ ℕ )
5 subfacp1lem1.m ( 𝜑𝑀 ∈ ( 2 ... ( 𝑁 + 1 ) ) )
6 subfacp1lem1.x 𝑀 ∈ V
7 subfacp1lem1.k 𝐾 = ( ( 2 ... ( 𝑁 + 1 ) ) ∖ { 𝑀 } )
8 subfacp1lem3.b 𝐵 = { 𝑔𝐴 ∣ ( ( 𝑔 ‘ 1 ) = 𝑀 ∧ ( 𝑔𝑀 ) = 1 ) }
9 subfacp1lem3.c 𝐶 = { 𝑓 ∣ ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) }
10 fzfi ( 1 ... ( 𝑁 + 1 ) ) ∈ Fin
11 deranglem ( ( 1 ... ( 𝑁 + 1 ) ) ∈ Fin → { 𝑓 ∣ ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) } ∈ Fin )
12 10 11 ax-mp { 𝑓 ∣ ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) } ∈ Fin
13 3 12 eqeltri 𝐴 ∈ Fin
14 8 ssrab3 𝐵𝐴
15 ssfi ( ( 𝐴 ∈ Fin ∧ 𝐵𝐴 ) → 𝐵 ∈ Fin )
16 13 14 15 mp2an 𝐵 ∈ Fin
17 16 elexi 𝐵 ∈ V
18 17 a1i ( 𝜑𝐵 ∈ V )
19 eqid ( 𝑏𝐵 ↦ ( 𝑏𝐾 ) ) = ( 𝑏𝐵 ↦ ( 𝑏𝐾 ) )
20 fveq1 ( 𝑔 = 𝑏 → ( 𝑔 ‘ 1 ) = ( 𝑏 ‘ 1 ) )
21 20 eqeq1d ( 𝑔 = 𝑏 → ( ( 𝑔 ‘ 1 ) = 𝑀 ↔ ( 𝑏 ‘ 1 ) = 𝑀 ) )
22 fveq1 ( 𝑔 = 𝑏 → ( 𝑔𝑀 ) = ( 𝑏𝑀 ) )
23 22 eqeq1d ( 𝑔 = 𝑏 → ( ( 𝑔𝑀 ) = 1 ↔ ( 𝑏𝑀 ) = 1 ) )
24 21 23 anbi12d ( 𝑔 = 𝑏 → ( ( ( 𝑔 ‘ 1 ) = 𝑀 ∧ ( 𝑔𝑀 ) = 1 ) ↔ ( ( 𝑏 ‘ 1 ) = 𝑀 ∧ ( 𝑏𝑀 ) = 1 ) ) )
25 24 8 elrab2 ( 𝑏𝐵 ↔ ( 𝑏𝐴 ∧ ( ( 𝑏 ‘ 1 ) = 𝑀 ∧ ( 𝑏𝑀 ) = 1 ) ) )
26 25 bilani ( ( 𝜑𝑏𝐵 ) → ( 𝑏𝐴 ∧ ( ( 𝑏 ‘ 1 ) = 𝑀 ∧ ( 𝑏𝑀 ) = 1 ) ) )
27 26 simpld ( ( 𝜑𝑏𝐵 ) → 𝑏𝐴 )
28 vex 𝑏 ∈ V
29 f1oeq1 ( 𝑓 = 𝑏 → ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ↔ 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ) )
30 fveq1 ( 𝑓 = 𝑏 → ( 𝑓𝑦 ) = ( 𝑏𝑦 ) )
31 30 neeq1d ( 𝑓 = 𝑏 → ( ( 𝑓𝑦 ) ≠ 𝑦 ↔ ( 𝑏𝑦 ) ≠ 𝑦 ) )
32 31 ralbidv ( 𝑓 = 𝑏 → ( ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ↔ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 ) )
33 29 32 anbi12d ( 𝑓 = 𝑏 → ( ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) ↔ ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 ) ) )
34 28 33 3 elab2 ( 𝑏𝐴 ↔ ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 ) )
35 27 34 sylib ( ( 𝜑𝑏𝐵 ) → ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 ) )
36 35 simpld ( ( 𝜑𝑏𝐵 ) → 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) )
37 f1of1 ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) → 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1→ ( 1 ... ( 𝑁 + 1 ) ) )
38 df-f1 ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1→ ( 1 ... ( 𝑁 + 1 ) ) ↔ ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) ⟶ ( 1 ... ( 𝑁 + 1 ) ) ∧ Fun 𝑏 ) )
39 38 simprbi ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1→ ( 1 ... ( 𝑁 + 1 ) ) → Fun 𝑏 )
40 36 37 39 3syl ( ( 𝜑𝑏𝐵 ) → Fun 𝑏 )
41 f1ofn ( 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) → 𝑏 Fn ( 1 ... ( 𝑁 + 1 ) ) )
42 36 41 syl ( ( 𝜑𝑏𝐵 ) → 𝑏 Fn ( 1 ... ( 𝑁 + 1 ) ) )
43 fnresdm ( 𝑏 Fn ( 1 ... ( 𝑁 + 1 ) ) → ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) = 𝑏 )
44 f1oeq1 ( ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) = 𝑏 → ( ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ↔ 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ) )
45 42 43 44 3syl ( ( 𝜑𝑏𝐵 ) → ( ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ↔ 𝑏 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ) )
46 36 45 mpbird ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) )
47 f1ofo ( ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) → ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –onto→ ( 1 ... ( 𝑁 + 1 ) ) )
48 46 47 syl ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –onto→ ( 1 ... ( 𝑁 + 1 ) ) )
49 ssun2 { 1 , 𝑀 } ⊆ ( 𝐾 ∪ { 1 , 𝑀 } )
50 1 2 3 4 5 6 7 subfacp1lem1 ( 𝜑 → ( ( 𝐾 ∩ { 1 , 𝑀 } ) = ∅ ∧ ( 𝐾 ∪ { 1 , 𝑀 } ) = ( 1 ... ( 𝑁 + 1 ) ) ∧ ( ♯ ‘ 𝐾 ) = ( 𝑁 − 1 ) ) )
51 50 simp2d ( 𝜑 → ( 𝐾 ∪ { 1 , 𝑀 } ) = ( 1 ... ( 𝑁 + 1 ) ) )
52 49 51 sseqtrid ( 𝜑 → { 1 , 𝑀 } ⊆ ( 1 ... ( 𝑁 + 1 ) ) )
53 52 adantr ( ( 𝜑𝑏𝐵 ) → { 1 , 𝑀 } ⊆ ( 1 ... ( 𝑁 + 1 ) ) )
54 42 53 fnssresd ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ { 1 , 𝑀 } ) Fn { 1 , 𝑀 } )
55 26 simprd ( ( 𝜑𝑏𝐵 ) → ( ( 𝑏 ‘ 1 ) = 𝑀 ∧ ( 𝑏𝑀 ) = 1 ) )
56 55 simpld ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ‘ 1 ) = 𝑀 )
57 6 prid2 𝑀 ∈ { 1 , 𝑀 }
58 56 57 eqeltrdi ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ‘ 1 ) ∈ { 1 , 𝑀 } )
59 55 simprd ( ( 𝜑𝑏𝐵 ) → ( 𝑏𝑀 ) = 1 )
60 1ex 1 ∈ V
61 60 prid1 1 ∈ { 1 , 𝑀 }
62 59 61 eqeltrdi ( ( 𝜑𝑏𝐵 ) → ( 𝑏𝑀 ) ∈ { 1 , 𝑀 } )
63 fveq2 ( 𝑥 = 1 → ( 𝑏𝑥 ) = ( 𝑏 ‘ 1 ) )
64 63 eleq1d ( 𝑥 = 1 → ( ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } ↔ ( 𝑏 ‘ 1 ) ∈ { 1 , 𝑀 } ) )
65 fveq2 ( 𝑥 = 𝑀 → ( 𝑏𝑥 ) = ( 𝑏𝑀 ) )
66 65 eleq1d ( 𝑥 = 𝑀 → ( ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } ↔ ( 𝑏𝑀 ) ∈ { 1 , 𝑀 } ) )
67 60 6 64 66 ralpr ( ∀ 𝑥 ∈ { 1 , 𝑀 } ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } ↔ ( ( 𝑏 ‘ 1 ) ∈ { 1 , 𝑀 } ∧ ( 𝑏𝑀 ) ∈ { 1 , 𝑀 } ) )
68 58 62 67 sylanbrc ( ( 𝜑𝑏𝐵 ) → ∀ 𝑥 ∈ { 1 , 𝑀 } ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } )
69 fvres ( 𝑥 ∈ { 1 , 𝑀 } → ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑥 ) = ( 𝑏𝑥 ) )
70 69 eleq1d ( 𝑥 ∈ { 1 , 𝑀 } → ( ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑥 ) ∈ { 1 , 𝑀 } ↔ ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } ) )
71 70 ralbiia ( ∀ 𝑥 ∈ { 1 , 𝑀 } ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑥 ) ∈ { 1 , 𝑀 } ↔ ∀ 𝑥 ∈ { 1 , 𝑀 } ( 𝑏𝑥 ) ∈ { 1 , 𝑀 } )
72 68 71 sylibr ( ( 𝜑𝑏𝐵 ) → ∀ 𝑥 ∈ { 1 , 𝑀 } ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑥 ) ∈ { 1 , 𝑀 } )
73 ffnfv ( ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } ⟶ { 1 , 𝑀 } ↔ ( ( 𝑏 ↾ { 1 , 𝑀 } ) Fn { 1 , 𝑀 } ∧ ∀ 𝑥 ∈ { 1 , 𝑀 } ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑥 ) ∈ { 1 , 𝑀 } ) )
74 54 72 73 sylanbrc ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } ⟶ { 1 , 𝑀 } )
75 fveqeq2 ( 𝑦 = 𝑀 → ( ( 𝑏𝑦 ) = 1 ↔ ( 𝑏𝑀 ) = 1 ) )
76 75 rspcev ( ( 𝑀 ∈ { 1 , 𝑀 } ∧ ( 𝑏𝑀 ) = 1 ) → ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 1 )
77 57 59 76 sylancr ( ( 𝜑𝑏𝐵 ) → ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 1 )
78 fveqeq2 ( 𝑦 = 1 → ( ( 𝑏𝑦 ) = 𝑀 ↔ ( 𝑏 ‘ 1 ) = 𝑀 ) )
79 78 rspcev ( ( 1 ∈ { 1 , 𝑀 } ∧ ( 𝑏 ‘ 1 ) = 𝑀 ) → ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑀 )
80 61 56 79 sylancr ( ( 𝜑𝑏𝐵 ) → ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑀 )
81 eqeq2 ( 𝑥 = 1 → ( ( 𝑏𝑦 ) = 𝑥 ↔ ( 𝑏𝑦 ) = 1 ) )
82 81 rexbidv ( 𝑥 = 1 → ( ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 ↔ ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 1 ) )
83 eqeq2 ( 𝑥 = 𝑀 → ( ( 𝑏𝑦 ) = 𝑥 ↔ ( 𝑏𝑦 ) = 𝑀 ) )
84 83 rexbidv ( 𝑥 = 𝑀 → ( ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 ↔ ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑀 ) )
85 60 6 82 84 ralpr ( ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 ↔ ( ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 1 ∧ ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑀 ) )
86 77 80 85 sylanbrc ( ( 𝜑𝑏𝐵 ) → ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 )
87 eqcom ( 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) ↔ ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) = 𝑥 )
88 fvres ( 𝑦 ∈ { 1 , 𝑀 } → ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) = ( 𝑏𝑦 ) )
89 88 eqeq1d ( 𝑦 ∈ { 1 , 𝑀 } → ( ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) = 𝑥 ↔ ( 𝑏𝑦 ) = 𝑥 ) )
90 87 89 bitrid ( 𝑦 ∈ { 1 , 𝑀 } → ( 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) ↔ ( 𝑏𝑦 ) = 𝑥 ) )
91 90 rexbiia ( ∃ 𝑦 ∈ { 1 , 𝑀 } 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) ↔ ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 )
92 91 ralbii ( ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) ↔ ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = 𝑥 )
93 86 92 sylibr ( ( 𝜑𝑏𝐵 ) → ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) )
94 dffo3 ( ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } –onto→ { 1 , 𝑀 } ↔ ( ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } ⟶ { 1 , 𝑀 } ∧ ∀ 𝑥 ∈ { 1 , 𝑀 } ∃ 𝑦 ∈ { 1 , 𝑀 } 𝑥 = ( ( 𝑏 ↾ { 1 , 𝑀 } ) ‘ 𝑦 ) ) )
95 74 93 94 sylanbrc ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } –onto→ { 1 , 𝑀 } )
96 resdif ( ( Fun 𝑏 ∧ ( 𝑏 ↾ ( 1 ... ( 𝑁 + 1 ) ) ) : ( 1 ... ( 𝑁 + 1 ) ) –onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ( 𝑏 ↾ { 1 , 𝑀 } ) : { 1 , 𝑀 } –onto→ { 1 , 𝑀 } ) → ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) )
97 40 48 95 96 syl3anc ( ( 𝜑𝑏𝐵 ) → ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) )
98 uncom ( { 1 , 𝑀 } ∪ 𝐾 ) = ( 𝐾 ∪ { 1 , 𝑀 } )
99 98 51 eqtrid ( 𝜑 → ( { 1 , 𝑀 } ∪ 𝐾 ) = ( 1 ... ( 𝑁 + 1 ) ) )
100 incom ( { 1 , 𝑀 } ∩ 𝐾 ) = ( 𝐾 ∩ { 1 , 𝑀 } )
101 50 simp1d ( 𝜑 → ( 𝐾 ∩ { 1 , 𝑀 } ) = ∅ )
102 100 101 eqtrid ( 𝜑 → ( { 1 , 𝑀 } ∩ 𝐾 ) = ∅ )
103 uneqdifeq ( ( { 1 , 𝑀 } ⊆ ( 1 ... ( 𝑁 + 1 ) ) ∧ ( { 1 , 𝑀 } ∩ 𝐾 ) = ∅ ) → ( ( { 1 , 𝑀 } ∪ 𝐾 ) = ( 1 ... ( 𝑁 + 1 ) ) ↔ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 ) )
104 52 102 103 syl2anc ( 𝜑 → ( ( { 1 , 𝑀 } ∪ 𝐾 ) = ( 1 ... ( 𝑁 + 1 ) ) ↔ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 ) )
105 99 104 mpbid ( 𝜑 → ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 )
106 105 adantr ( ( 𝜑𝑏𝐵 ) → ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 )
107 reseq2 ( ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 → ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) = ( 𝑏𝐾 ) )
108 107 f1oeq1d ( ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 → ( ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ↔ ( 𝑏𝐾 ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) )
109 f1oeq2 ( ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 → ( ( 𝑏𝐾 ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ↔ ( 𝑏𝐾 ) : 𝐾1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) )
110 f1oeq3 ( ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 → ( ( 𝑏𝐾 ) : 𝐾1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ↔ ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ) )
111 108 109 110 3bitrd ( ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) = 𝐾 → ( ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ↔ ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ) )
112 106 111 syl ( ( 𝜑𝑏𝐵 ) → ( ( 𝑏 ↾ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ) : ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) –1-1-onto→ ( ( 1 ... ( 𝑁 + 1 ) ) ∖ { 1 , 𝑀 } ) ↔ ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ) )
113 97 112 mpbid ( ( 𝜑𝑏𝐵 ) → ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 )
114 ssun1 𝐾 ⊆ ( 𝐾 ∪ { 1 , 𝑀 } )
115 114 51 sseqtrid ( 𝜑𝐾 ⊆ ( 1 ... ( 𝑁 + 1 ) ) )
116 115 adantr ( ( 𝜑𝑏𝐵 ) → 𝐾 ⊆ ( 1 ... ( 𝑁 + 1 ) ) )
117 35 simprd ( ( 𝜑𝑏𝐵 ) → ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 )
118 ssralv ( 𝐾 ⊆ ( 1 ... ( 𝑁 + 1 ) ) → ( ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) ≠ 𝑦 → ∀ 𝑦𝐾 ( 𝑏𝑦 ) ≠ 𝑦 ) )
119 116 117 118 sylc ( ( 𝜑𝑏𝐵 ) → ∀ 𝑦𝐾 ( 𝑏𝑦 ) ≠ 𝑦 )
120 28 resex ( 𝑏𝐾 ) ∈ V
121 f1oeq1 ( 𝑓 = ( 𝑏𝐾 ) → ( 𝑓 : 𝐾1-1-onto𝐾 ↔ ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ) )
122 fveq1 ( 𝑓 = ( 𝑏𝐾 ) → ( 𝑓𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) )
123 fvres ( 𝑦𝐾 → ( ( 𝑏𝐾 ) ‘ 𝑦 ) = ( 𝑏𝑦 ) )
124 122 123 sylan9eq ( ( 𝑓 = ( 𝑏𝐾 ) ∧ 𝑦𝐾 ) → ( 𝑓𝑦 ) = ( 𝑏𝑦 ) )
125 124 neeq1d ( ( 𝑓 = ( 𝑏𝐾 ) ∧ 𝑦𝐾 ) → ( ( 𝑓𝑦 ) ≠ 𝑦 ↔ ( 𝑏𝑦 ) ≠ 𝑦 ) )
126 125 ralbidva ( 𝑓 = ( 𝑏𝐾 ) → ( ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ↔ ∀ 𝑦𝐾 ( 𝑏𝑦 ) ≠ 𝑦 ) )
127 121 126 anbi12d ( 𝑓 = ( 𝑏𝐾 ) → ( ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) ↔ ( ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑏𝑦 ) ≠ 𝑦 ) ) )
128 120 127 9 elab2 ( ( 𝑏𝐾 ) ∈ 𝐶 ↔ ( ( 𝑏𝐾 ) : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑏𝑦 ) ≠ 𝑦 ) )
129 113 119 128 sylanbrc ( ( 𝜑𝑏𝐵 ) → ( 𝑏𝐾 ) ∈ 𝐶 )
130 4 adantr ( ( 𝜑𝑐𝐶 ) → 𝑁 ∈ ℕ )
131 5 adantr ( ( 𝜑𝑐𝐶 ) → 𝑀 ∈ ( 2 ... ( 𝑁 + 1 ) ) )
132 eqid ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } )
133 vex 𝑐 ∈ V
134 f1oeq1 ( 𝑓 = 𝑐 → ( 𝑓 : 𝐾1-1-onto𝐾𝑐 : 𝐾1-1-onto𝐾 ) )
135 fveq1 ( 𝑓 = 𝑐 → ( 𝑓𝑦 ) = ( 𝑐𝑦 ) )
136 135 neeq1d ( 𝑓 = 𝑐 → ( ( 𝑓𝑦 ) ≠ 𝑦 ↔ ( 𝑐𝑦 ) ≠ 𝑦 ) )
137 136 ralbidv ( 𝑓 = 𝑐 → ( ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ↔ ∀ 𝑦𝐾 ( 𝑐𝑦 ) ≠ 𝑦 ) )
138 134 137 anbi12d ( 𝑓 = 𝑐 → ( ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) ↔ ( 𝑐 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑐𝑦 ) ≠ 𝑦 ) ) )
139 133 138 9 elab2 ( 𝑐𝐶 ↔ ( 𝑐 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑐𝑦 ) ≠ 𝑦 ) )
140 139 bilani ( ( 𝜑𝑐𝐶 ) → ( 𝑐 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑐𝑦 ) ≠ 𝑦 ) )
141 140 simpld ( ( 𝜑𝑐𝐶 ) → 𝑐 : 𝐾1-1-onto𝐾 )
142 1 2 3 130 131 6 7 132 141 subfacp1lem2a ( ( 𝜑𝑐𝐶 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 ) )
143 142 simp1d ( ( 𝜑𝑐𝐶 ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) )
144 1 2 3 130 131 6 7 132 141 subfacp1lem2b ( ( ( 𝜑𝑐𝐶 ) ∧ 𝑦𝐾 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) = ( 𝑐𝑦 ) )
145 140 simprd ( ( 𝜑𝑐𝐶 ) → ∀ 𝑦𝐾 ( 𝑐𝑦 ) ≠ 𝑦 )
146 145 r19.21bi ( ( ( 𝜑𝑐𝐶 ) ∧ 𝑦𝐾 ) → ( 𝑐𝑦 ) ≠ 𝑦 )
147 144 146 eqnetrd ( ( ( 𝜑𝑐𝐶 ) ∧ 𝑦𝐾 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 )
148 147 ralrimiva ( ( 𝜑𝑐𝐶 ) → ∀ 𝑦𝐾 ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 )
149 142 simp2d ( ( 𝜑𝑐𝐶 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 )
150 elfzuz ( 𝑀 ∈ ( 2 ... ( 𝑁 + 1 ) ) → 𝑀 ∈ ( ℤ ‘ 2 ) )
151 eluz2b3 ( 𝑀 ∈ ( ℤ ‘ 2 ) ↔ ( 𝑀 ∈ ℕ ∧ 𝑀 ≠ 1 ) )
152 151 simprbi ( 𝑀 ∈ ( ℤ ‘ 2 ) → 𝑀 ≠ 1 )
153 5 150 152 3syl ( 𝜑𝑀 ≠ 1 )
154 153 adantr ( ( 𝜑𝑐𝐶 ) → 𝑀 ≠ 1 )
155 149 154 eqnetrd ( ( 𝜑𝑐𝐶 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) ≠ 1 )
156 142 simp3d ( ( 𝜑𝑐𝐶 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 )
157 154 necomd ( ( 𝜑𝑐𝐶 ) → 1 ≠ 𝑀 )
158 156 157 eqnetrd ( ( 𝜑𝑐𝐶 ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) ≠ 𝑀 )
159 fveq2 ( 𝑦 = 1 → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) )
160 id ( 𝑦 = 1 → 𝑦 = 1 )
161 159 160 neeq12d ( 𝑦 = 1 → ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) ≠ 1 ) )
162 fveq2 ( 𝑦 = 𝑀 → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) )
163 id ( 𝑦 = 𝑀𝑦 = 𝑀 )
164 162 163 neeq12d ( 𝑦 = 𝑀 → ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) ≠ 𝑀 ) )
165 60 6 161 164 ralpr ( ∀ 𝑦 ∈ { 1 , 𝑀 } ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ↔ ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) ≠ 1 ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) ≠ 𝑀 ) )
166 155 158 165 sylanbrc ( ( 𝜑𝑐𝐶 ) → ∀ 𝑦 ∈ { 1 , 𝑀 } ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 )
167 ralunb ( ∀ 𝑦 ∈ ( 𝐾 ∪ { 1 , 𝑀 } ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ↔ ( ∀ 𝑦𝐾 ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ∧ ∀ 𝑦 ∈ { 1 , 𝑀 } ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ) )
168 148 166 167 sylanbrc ( ( 𝜑𝑐𝐶 ) → ∀ 𝑦 ∈ ( 𝐾 ∪ { 1 , 𝑀 } ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 )
169 51 adantr ( ( 𝜑𝑐𝐶 ) → ( 𝐾 ∪ { 1 , 𝑀 } ) = ( 1 ... ( 𝑁 + 1 ) ) )
170 168 169 raleqtrdv ( ( 𝜑𝑐𝐶 ) → ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 )
171 prex { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ∈ V
172 133 171 unex ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ V
173 f1oeq1 ( 𝑓 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ↔ ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ) )
174 fveq1 ( 𝑓 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( 𝑓𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) )
175 174 neeq1d ( 𝑓 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ( 𝑓𝑦 ) ≠ 𝑦 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ) )
176 175 ralbidv ( 𝑓 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ↔ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ) )
177 173 176 anbi12d ( 𝑓 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ( 𝑓 : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑓𝑦 ) ≠ 𝑦 ) ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ) ) )
178 172 177 3 elab2 ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ 𝐴 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) ∧ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ≠ 𝑦 ) )
179 143 170 178 sylanbrc ( ( 𝜑𝑐𝐶 ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ 𝐴 )
180 149 156 jca ( ( 𝜑𝑐𝐶 ) → ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 ) )
181 fveq1 ( 𝑔 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( 𝑔 ‘ 1 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) )
182 181 eqeq1d ( 𝑔 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ( 𝑔 ‘ 1 ) = 𝑀 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 ) )
183 fveq1 ( 𝑔 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( 𝑔𝑀 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) )
184 183 eqeq1d ( 𝑔 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ( 𝑔𝑀 ) = 1 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 ) )
185 182 184 anbi12d ( 𝑔 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) → ( ( ( 𝑔 ‘ 1 ) = 𝑀 ∧ ( 𝑔𝑀 ) = 1 ) ↔ ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 ) ) )
186 185 8 elrab2 ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ 𝐵 ↔ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ 𝐴 ∧ ( ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 ∧ ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 ) ) )
187 179 180 186 sylanbrc ( ( 𝜑𝑐𝐶 ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ∈ 𝐵 )
188 56 adantrr ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏 ‘ 1 ) = 𝑀 )
189 149 adantrl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) = 𝑀 )
190 188 189 eqtr4d ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏 ‘ 1 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) )
191 59 adantrr ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏𝑀 ) = 1 )
192 156 adantrl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) = 1 )
193 191 192 eqtr4d ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏𝑀 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) )
194 fveq2 ( 𝑦 = 1 → ( 𝑏𝑦 ) = ( 𝑏 ‘ 1 ) )
195 194 159 eqeq12d ( 𝑦 = 1 → ( ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( 𝑏 ‘ 1 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) ) )
196 fveq2 ( 𝑦 = 𝑀 → ( 𝑏𝑦 ) = ( 𝑏𝑀 ) )
197 196 162 eqeq12d ( 𝑦 = 𝑀 → ( ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( 𝑏𝑀 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) ) )
198 60 6 195 197 ralpr ( ∀ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( ( 𝑏 ‘ 1 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 1 ) ∧ ( 𝑏𝑀 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑀 ) ) )
199 190 193 198 sylanbrc ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ∀ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) )
200 199 biantrud ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ∧ ∀ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) ) )
201 ralunb ( ∀ 𝑦 ∈ ( 𝐾 ∪ { 1 , 𝑀 } ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ∧ ∀ 𝑦 ∈ { 1 , 𝑀 } ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) )
202 200 201 bitr4di ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦 ∈ ( 𝐾 ∪ { 1 , 𝑀 } ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) )
203 144 eqeq2d ( ( ( 𝜑𝑐𝐶 ) ∧ 𝑦𝐾 ) → ( ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ( 𝑏𝑦 ) = ( 𝑐𝑦 ) ) )
204 203 ralbidva ( ( 𝜑𝑐𝐶 ) → ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( 𝑐𝑦 ) ) )
205 204 adantrl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( 𝑐𝑦 ) ) )
206 51 adantr ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝐾 ∪ { 1 , 𝑀 } ) = ( 1 ... ( 𝑁 + 1 ) ) )
207 206 raleqdv ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦 ∈ ( 𝐾 ∪ { 1 , 𝑀 } ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) )
208 202 205 207 3bitr3rd ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( 𝑐𝑦 ) ) )
209 123 eqeq2d ( 𝑦𝐾 → ( ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ↔ ( 𝑐𝑦 ) = ( 𝑏𝑦 ) ) )
210 eqcom ( ( 𝑐𝑦 ) = ( 𝑏𝑦 ) ↔ ( 𝑏𝑦 ) = ( 𝑐𝑦 ) )
211 209 210 bitrdi ( 𝑦𝐾 → ( ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ↔ ( 𝑏𝑦 ) = ( 𝑐𝑦 ) ) )
212 211 ralbiia ( ∀ 𝑦𝐾 ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ↔ ∀ 𝑦𝐾 ( 𝑏𝑦 ) = ( 𝑐𝑦 ) )
213 208 212 bitr4di ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ↔ ∀ 𝑦𝐾 ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ) )
214 42 adantrr ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → 𝑏 Fn ( 1 ... ( 𝑁 + 1 ) ) )
215 143 adantrl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) )
216 f1ofn ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) : ( 1 ... ( 𝑁 + 1 ) ) –1-1-onto→ ( 1 ... ( 𝑁 + 1 ) ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) Fn ( 1 ... ( 𝑁 + 1 ) ) )
217 215 216 syl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) Fn ( 1 ... ( 𝑁 + 1 ) ) )
218 eqfnfv ( ( 𝑏 Fn ( 1 ... ( 𝑁 + 1 ) ) ∧ ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) Fn ( 1 ... ( 𝑁 + 1 ) ) ) → ( 𝑏 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ↔ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) )
219 214 217 218 syl2anc ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ↔ ∀ 𝑦 ∈ ( 1 ... ( 𝑁 + 1 ) ) ( 𝑏𝑦 ) = ( ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ‘ 𝑦 ) ) )
220 141 adantrl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → 𝑐 : 𝐾1-1-onto𝐾 )
221 f1ofn ( 𝑐 : 𝐾1-1-onto𝐾𝑐 Fn 𝐾 )
222 220 221 syl ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → 𝑐 Fn 𝐾 )
223 115 adantr ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → 𝐾 ⊆ ( 1 ... ( 𝑁 + 1 ) ) )
224 214 223 fnssresd ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏𝐾 ) Fn 𝐾 )
225 eqfnfv ( ( 𝑐 Fn 𝐾 ∧ ( 𝑏𝐾 ) Fn 𝐾 ) → ( 𝑐 = ( 𝑏𝐾 ) ↔ ∀ 𝑦𝐾 ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ) )
226 222 224 225 syl2anc ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑐 = ( 𝑏𝐾 ) ↔ ∀ 𝑦𝐾 ( 𝑐𝑦 ) = ( ( 𝑏𝐾 ) ‘ 𝑦 ) ) )
227 213 219 226 3bitr4d ( ( 𝜑 ∧ ( 𝑏𝐵𝑐𝐶 ) ) → ( 𝑏 = ( 𝑐 ∪ { ⟨ 1 , 𝑀 ⟩ , ⟨ 𝑀 , 1 ⟩ } ) ↔ 𝑐 = ( 𝑏𝐾 ) ) )
228 19 129 187 227 f1o2d ( 𝜑 → ( 𝑏𝐵 ↦ ( 𝑏𝐾 ) ) : 𝐵1-1-onto𝐶 )
229 18 228 hasheqf1od ( 𝜑 → ( ♯ ‘ 𝐵 ) = ( ♯ ‘ 𝐶 ) )
230 9 fveq2i ( ♯ ‘ 𝐶 ) = ( ♯ ‘ { 𝑓 ∣ ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) } )
231 fzfi ( 2 ... ( 𝑁 + 1 ) ) ∈ Fin
232 diffi ( ( 2 ... ( 𝑁 + 1 ) ) ∈ Fin → ( ( 2 ... ( 𝑁 + 1 ) ) ∖ { 𝑀 } ) ∈ Fin )
233 231 232 ax-mp ( ( 2 ... ( 𝑁 + 1 ) ) ∖ { 𝑀 } ) ∈ Fin
234 7 233 eqeltri 𝐾 ∈ Fin
235 1 derangval ( 𝐾 ∈ Fin → ( 𝐷𝐾 ) = ( ♯ ‘ { 𝑓 ∣ ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) } ) )
236 234 235 ax-mp ( 𝐷𝐾 ) = ( ♯ ‘ { 𝑓 ∣ ( 𝑓 : 𝐾1-1-onto𝐾 ∧ ∀ 𝑦𝐾 ( 𝑓𝑦 ) ≠ 𝑦 ) } )
237 1 2 derangen2 ( 𝐾 ∈ Fin → ( 𝐷𝐾 ) = ( 𝑆 ‘ ( ♯ ‘ 𝐾 ) ) )
238 234 237 ax-mp ( 𝐷𝐾 ) = ( 𝑆 ‘ ( ♯ ‘ 𝐾 ) )
239 230 236 238 3eqtr2ri ( 𝑆 ‘ ( ♯ ‘ 𝐾 ) ) = ( ♯ ‘ 𝐶 )
240 50 simp3d ( 𝜑 → ( ♯ ‘ 𝐾 ) = ( 𝑁 − 1 ) )
241 240 fveq2d ( 𝜑 → ( 𝑆 ‘ ( ♯ ‘ 𝐾 ) ) = ( 𝑆 ‘ ( 𝑁 − 1 ) ) )
242 239 241 eqtr3id ( 𝜑 → ( ♯ ‘ 𝐶 ) = ( 𝑆 ‘ ( 𝑁 − 1 ) ) )
243 229 242 eqtrd ( 𝜑 → ( ♯ ‘ 𝐵 ) = ( 𝑆 ‘ ( 𝑁 − 1 ) ) )