Metamath Proof Explorer


Theorem actfunsnf1o

Description: The action F of extending function from B to C with new values at point I is a bijection. (Contributed by Thierry Arnoux, 9-Dec-2021)

Ref Expression
Hypotheses actfunsn.1 ( ( 𝜑𝑘𝐶 ) → 𝐴 ⊆ ( 𝐶m 𝐵 ) )
actfunsn.2 ( 𝜑𝐶 ∈ V )
actfunsn.3 ( 𝜑𝐼𝑉 )
actfunsn.4 ( 𝜑 → ¬ 𝐼𝐵 )
actfunsn.5 𝐹 = ( 𝑥𝐴 ↦ ( 𝑥 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
Assertion actfunsnf1o ( ( 𝜑𝑘𝐶 ) → 𝐹 : 𝐴1-1-onto→ ran 𝐹 )

Proof

Step Hyp Ref Expression
1 actfunsn.1 ( ( 𝜑𝑘𝐶 ) → 𝐴 ⊆ ( 𝐶m 𝐵 ) )
2 actfunsn.2 ( 𝜑𝐶 ∈ V )
3 actfunsn.3 ( 𝜑𝐼𝑉 )
4 actfunsn.4 ( 𝜑 → ¬ 𝐼𝐵 )
5 actfunsn.5 𝐹 = ( 𝑥𝐴 ↦ ( 𝑥 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
6 uneq1 ( 𝑥 = 𝑧 → ( 𝑥 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
7 6 cbvmptv ( 𝑥𝐴 ↦ ( 𝑥 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) = ( 𝑧𝐴 ↦ ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
8 5 7 eqtri 𝐹 = ( 𝑧𝐴 ↦ ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
9 vex 𝑧 ∈ V
10 snex { ⟨ 𝐼 , 𝑘 ⟩ } ∈ V
11 9 10 unex ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ∈ V
12 11 a1i ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ∈ V )
13 vex 𝑦 ∈ V
14 13 resex ( 𝑦𝐵 ) ∈ V
15 14 a1i ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) → ( 𝑦𝐵 ) ∈ V )
16 rspe ( ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ∃ 𝑧𝐴 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
17 8 11 elrnmpti ( 𝑦 ∈ ran 𝐹 ↔ ∃ 𝑧𝐴 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
18 16 17 sylibr ( ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑦 ∈ ran 𝐹 )
19 18 adantll ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑦 ∈ ran 𝐹 )
20 simpr ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
21 20 reseq1d ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝑦𝐵 ) = ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) )
22 1 sselda ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → 𝑧 ∈ ( 𝐶m 𝐵 ) )
23 elmapfn ( 𝑧 ∈ ( 𝐶m 𝐵 ) → 𝑧 Fn 𝐵 )
24 22 23 syl ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → 𝑧 Fn 𝐵 )
25 fnsng ( ( 𝐼𝑉𝑘𝐶 ) → { ⟨ 𝐼 , 𝑘 ⟩ } Fn { 𝐼 } )
26 3 25 sylan ( ( 𝜑𝑘𝐶 ) → { ⟨ 𝐼 , 𝑘 ⟩ } Fn { 𝐼 } )
27 26 adantr ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → { ⟨ 𝐼 , 𝑘 ⟩ } Fn { 𝐼 } )
28 disjsn ( ( 𝐵 ∩ { 𝐼 } ) = ∅ ↔ ¬ 𝐼𝐵 )
29 4 28 sylibr ( 𝜑 → ( 𝐵 ∩ { 𝐼 } ) = ∅ )
30 29 adantr ( ( 𝜑𝑘𝐶 ) → ( 𝐵 ∩ { 𝐼 } ) = ∅ )
31 30 adantr ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → ( 𝐵 ∩ { 𝐼 } ) = ∅ )
32 fnunres1 ( ( 𝑧 Fn 𝐵 ∧ { ⟨ 𝐼 , 𝑘 ⟩ } Fn { 𝐼 } ∧ ( 𝐵 ∩ { 𝐼 } ) = ∅ ) → ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) = 𝑧 )
33 24 27 31 32 syl3anc ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) → ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) = 𝑧 )
34 33 adantr ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) = 𝑧 )
35 21 34 eqtr2d ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑧 = ( 𝑦𝐵 ) )
36 19 35 jca ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝑦 ∈ ran 𝐹𝑧 = ( 𝑦𝐵 ) ) )
37 36 anasss ( ( ( 𝜑𝑘𝐶 ) ∧ ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) ) → ( 𝑦 ∈ ran 𝐹𝑧 = ( 𝑦𝐵 ) ) )
38 simpr ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → 𝑧 = ( 𝑦𝐵 ) )
39 simpr ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
40 39 reseq1d ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝑦𝐵 ) = ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) )
41 1 ad3antrrr ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝐴 ⊆ ( 𝐶m 𝐵 ) )
42 simplr ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑧𝐴 )
43 41 42 sseldd ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑧 ∈ ( 𝐶m 𝐵 ) )
44 43 23 syl ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑧 Fn 𝐵 )
45 3 ad4antr ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝐼𝑉 )
46 simp-4r ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → 𝑘𝐶 )
47 45 46 25 syl2anc ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → { ⟨ 𝐼 , 𝑘 ⟩ } Fn { 𝐼 } )
48 29 ad4antr ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝐵 ∩ { 𝐼 } ) = ∅ )
49 44 47 48 32 syl3anc ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) = 𝑧 )
50 49 42 eqeltrd ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ↾ 𝐵 ) ∈ 𝐴 )
51 40 50 eqeltrd ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝑦𝐵 ) ∈ 𝐴 )
52 simpr ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) → 𝑦 ∈ ran 𝐹 )
53 52 17 sylib ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) → ∃ 𝑧𝐴 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
54 51 53 r19.29a ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) → ( 𝑦𝐵 ) ∈ 𝐴 )
55 54 adantr ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → ( 𝑦𝐵 ) ∈ 𝐴 )
56 38 55 eqeltrd ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → 𝑧𝐴 )
57 38 uneq1d ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = ( ( 𝑦𝐵 ) ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
58 40 49 eqtrd ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( 𝑦𝐵 ) = 𝑧 )
59 58 uneq1d ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( ( 𝑦𝐵 ) ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
60 59 39 eqtr4d ( ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧𝐴 ) ∧ 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) → ( ( 𝑦𝐵 ) ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = 𝑦 )
61 60 53 r19.29a ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) → ( ( 𝑦𝐵 ) ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = 𝑦 )
62 61 adantr ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → ( ( 𝑦𝐵 ) ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) = 𝑦 )
63 57 62 eqtr2d ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → 𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) )
64 56 63 jca ( ( ( ( 𝜑𝑘𝐶 ) ∧ 𝑦 ∈ ran 𝐹 ) ∧ 𝑧 = ( 𝑦𝐵 ) ) → ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) )
65 64 anasss ( ( ( 𝜑𝑘𝐶 ) ∧ ( 𝑦 ∈ ran 𝐹𝑧 = ( 𝑦𝐵 ) ) ) → ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) )
66 37 65 impbida ( ( 𝜑𝑘𝐶 ) → ( ( 𝑧𝐴𝑦 = ( 𝑧 ∪ { ⟨ 𝐼 , 𝑘 ⟩ } ) ) ↔ ( 𝑦 ∈ ran 𝐹𝑧 = ( 𝑦𝐵 ) ) ) )
67 8 12 15 66 f1od ( ( 𝜑𝑘𝐶 ) → 𝐹 : 𝐴1-1-onto→ ran 𝐹 )