Metamath Proof Explorer


Theorem fmptunsnop

Description: Two ways to express a function with a value replaced. (Contributed by Thierry Arnoux, 5-Oct-2025)

Ref Expression
Hypotheses fmptunsnop.1
|- ( ph -> F Fn A )
fmptunsnop.2
|- ( ph -> X e. A )
fmptunsnop.3
|- ( ph -> Y e. B )
Assertion fmptunsnop
|- ( ph -> ( x e. A |-> if ( x = X , Y , ( F ` x ) ) ) = ( ( F |` ( A \ { X } ) ) u. { <. X , Y >. } ) )

Proof

Step Hyp Ref Expression
1 fmptunsnop.1
 |-  ( ph -> F Fn A )
2 fmptunsnop.2
 |-  ( ph -> X e. A )
3 fmptunsnop.3
 |-  ( ph -> Y e. B )
4 mptun
 |-  ( x e. ( ( A \ { X } ) u. { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) = ( ( x e. ( A \ { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) u. ( x e. { X } |-> if ( x = X , Y , ( F ` x ) ) ) )
5 difsnid
 |-  ( X e. A -> ( ( A \ { X } ) u. { X } ) = A )
6 2 5 syl
 |-  ( ph -> ( ( A \ { X } ) u. { X } ) = A )
7 6 mpteq1d
 |-  ( ph -> ( x e. ( ( A \ { X } ) u. { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) = ( x e. A |-> if ( x = X , Y , ( F ` x ) ) ) )
8 eldifsni
 |-  ( x e. ( A \ { X } ) -> x =/= X )
9 8 adantl
 |-  ( ( ph /\ x e. ( A \ { X } ) ) -> x =/= X )
10 9 neneqd
 |-  ( ( ph /\ x e. ( A \ { X } ) ) -> -. x = X )
11 10 iffalsed
 |-  ( ( ph /\ x e. ( A \ { X } ) ) -> if ( x = X , Y , ( F ` x ) ) = ( F ` x ) )
12 11 mpteq2dva
 |-  ( ph -> ( x e. ( A \ { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) = ( x e. ( A \ { X } ) |-> ( F ` x ) ) )
13 dffn3
 |-  ( F Fn A <-> F : A --> ran F )
14 1 13 sylib
 |-  ( ph -> F : A --> ran F )
15 difssd
 |-  ( ph -> ( A \ { X } ) C_ A )
16 14 15 feqresmpt
 |-  ( ph -> ( F |` ( A \ { X } ) ) = ( x e. ( A \ { X } ) |-> ( F ` x ) ) )
17 12 16 eqtr4d
 |-  ( ph -> ( x e. ( A \ { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) = ( F |` ( A \ { X } ) ) )
18 iftrue
 |-  ( x = X -> if ( x = X , Y , ( F ` x ) ) = Y )
19 18 adantl
 |-  ( ( ph /\ x = X ) -> if ( x = X , Y , ( F ` x ) ) = Y )
20 19 2 3 fmptsnd
 |-  ( ph -> { <. X , Y >. } = ( x e. { X } |-> if ( x = X , Y , ( F ` x ) ) ) )
21 20 eqcomd
 |-  ( ph -> ( x e. { X } |-> if ( x = X , Y , ( F ` x ) ) ) = { <. X , Y >. } )
22 17 21 uneq12d
 |-  ( ph -> ( ( x e. ( A \ { X } ) |-> if ( x = X , Y , ( F ` x ) ) ) u. ( x e. { X } |-> if ( x = X , Y , ( F ` x ) ) ) ) = ( ( F |` ( A \ { X } ) ) u. { <. X , Y >. } ) )
23 4 7 22 3eqtr3a
 |-  ( ph -> ( x e. A |-> if ( x = X , Y , ( F ` x ) ) ) = ( ( F |` ( A \ { X } ) ) u. { <. X , Y >. } ) )