MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  csbif Structured version   Unicode version

Theorem csbif 3907
Description: Distribute proper substitution through the conditional operator. (Contributed by NM, 24-Feb-2013.) (Revised by NM, 19-Aug-2018.)
Assertion
Ref Expression
csbif  |-  [_ A  /  x ]_ if (
ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C )

Proof of Theorem csbif
Dummy variable  y is distinct from all other variables.
StepHypRef Expression
1 csbeq1 3351 . . . 4  |-  ( y  =  A  ->  [_ y  /  x ]_ if (
ph ,  B ,  C )  =  [_ A  /  x ]_ if ( ph ,  B ,  C ) )
2 dfsbcq2 3255 . . . . 5  |-  ( y  =  A  ->  ( [ y  /  x ] ph  <->  [. A  /  x ]. ph ) )
3 csbeq1 3351 . . . . 5  |-  ( y  =  A  ->  [_ y  /  x ]_ B  = 
[_ A  /  x ]_ B )
4 csbeq1 3351 . . . . 5  |-  ( y  =  A  ->  [_ y  /  x ]_ C  = 
[_ A  /  x ]_ C )
52, 3, 4ifbieq12d 3884 . . . 4  |-  ( y  =  A  ->  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
61, 5eqeq12d 2404 . . 3  |-  ( y  =  A  ->  ( [_ y  /  x ]_ if ( ph ,  B ,  C )  =  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )  <->  [_ A  /  x ]_ if ( ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) ) )
7 vex 3037 . . . 4  |-  y  e. 
_V
8 nfs1v 2185 . . . . 5  |-  F/ x [ y  /  x ] ph
9 nfcsb1v 3364 . . . . 5  |-  F/_ x [_ y  /  x ]_ B
10 nfcsb1v 3364 . . . . 5  |-  F/_ x [_ y  /  x ]_ C
118, 9, 10nfif 3886 . . . 4  |-  F/_ x if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )
12 sbequ12 2000 . . . . 5  |-  ( x  =  y  ->  ( ph 
<->  [ y  /  x ] ph ) )
13 csbeq1a 3357 . . . . 5  |-  ( x  =  y  ->  B  =  [_ y  /  x ]_ B )
14 csbeq1a 3357 . . . . 5  |-  ( x  =  y  ->  C  =  [_ y  /  x ]_ C )
1512, 13, 14ifbieq12d 3884 . . . 4  |-  ( x  =  y  ->  if ( ph ,  B ,  C )  =  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C ) )
167, 11, 15csbief 3373 . . 3  |-  [_ y  /  x ]_ if (
ph ,  B ,  C )  =  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )
176, 16vtoclg 3092 . 2  |-  ( A  e.  _V  ->  [_ A  /  x ]_ if (
ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
18 csbprc 3748 . . 3  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ if ( ph ,  B ,  C )  =  (/) )
19 csbprc 3748 . . . . 5  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ B  =  (/) )
20 csbprc 3748 . . . . 5  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ C  =  (/) )
2119, 20ifeq12d 3877 . . . 4  |-  ( -.  A  e.  _V  ->  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C )  =  if ( [. A  /  x ]. ph ,  (/) ,  (/) ) )
22 ifid 3894 . . . 4  |-  if (
[. A  /  x ]. ph ,  (/) ,  (/) )  =  (/)
2321, 22syl6req 2440 . . 3  |-  ( -.  A  e.  _V  ->  (/)  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
2418, 23eqtrd 2423 . 2  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ if ( ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
2517, 24pm2.61i 164 1  |-  [_ A  /  x ]_ if (
ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C )
Colors of variables: wff setvar class
Syntax hints:   -. wn 3    = wceq 1399   [wsb 1747    e. wcel 1826   _Vcvv 3034   [.wsbc 3252   [_csb 3348   (/)c0 3711   ifcif 3857
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1626  ax-4 1639  ax-5 1712  ax-6 1755  ax-7 1798  ax-10 1845  ax-11 1850  ax-12 1862  ax-13 2006  ax-ext 2360
This theorem depends on definitions:  df-bi 185  df-or 368  df-an 369  df-3an 973  df-tru 1402  df-fal 1405  df-ex 1621  df-nf 1625  df-sb 1748  df-clab 2368  df-cleq 2374  df-clel 2377  df-nfc 2532  df-rab 2741  df-v 3036  df-sbc 3253  df-csb 3349  df-dif 3392  df-un 3394  df-in 3396  df-ss 3403  df-nul 3712  df-if 3858
This theorem is referenced by:  fvmptnn04if  19435  cdlemk40  37056
  Copyright terms: Public domain W3C validator