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

Theorem csbif 3984
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 3433 . . . 4  |-  ( y  =  A  ->  [_ y  /  x ]_ if (
ph ,  B ,  C )  =  [_ A  /  x ]_ if ( ph ,  B ,  C ) )
2 dfsbcq2 3329 . . . . 5  |-  ( y  =  A  ->  ( [ y  /  x ] ph  <->  [. A  /  x ]. ph ) )
3 csbeq1 3433 . . . . 5  |-  ( y  =  A  ->  [_ y  /  x ]_ B  = 
[_ A  /  x ]_ B )
4 csbeq1 3433 . . . . 5  |-  ( y  =  A  ->  [_ y  /  x ]_ C  = 
[_ A  /  x ]_ C )
52, 3, 4ifbieq12d 3961 . . . 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 2484 . . 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 3111 . . . 4  |-  y  e. 
_V
8 nfs1v 2159 . . . . 5  |-  F/ x [ y  /  x ] ph
9 nfcsb1v 3446 . . . . 5  |-  F/_ x [_ y  /  x ]_ B
10 nfcsb1v 3446 . . . . 5  |-  F/_ x [_ y  /  x ]_ C
118, 9, 10nfif 3963 . . . 4  |-  F/_ x if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )
12 sbequ12 1956 . . . . 5  |-  ( x  =  y  ->  ( ph 
<->  [ y  /  x ] ph ) )
13 csbeq1a 3439 . . . . 5  |-  ( x  =  y  ->  B  =  [_ y  /  x ]_ B )
14 csbeq1a 3439 . . . . 5  |-  ( x  =  y  ->  C  =  [_ y  /  x ]_ C )
1512, 13, 14ifbieq12d 3961 . . . 4  |-  ( x  =  y  ->  if ( ph ,  B ,  C )  =  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C ) )
167, 11, 15csbief 3455 . . 3  |-  [_ y  /  x ]_ if (
ph ,  B ,  C )  =  if ( [ y  /  x ] ph ,  [_ y  /  x ]_ B ,  [_ y  /  x ]_ C )
176, 16vtoclg 3166 . 2  |-  ( A  e.  _V  ->  [_ A  /  x ]_ if (
ph ,  B ,  C )  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
18 csbprc 3816 . . 3  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ if ( ph ,  B ,  C )  =  (/) )
19 csbprc 3816 . . . . 5  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ B  =  (/) )
20 csbprc 3816 . . . . 5  |-  ( -.  A  e.  _V  ->  [_ A  /  x ]_ C  =  (/) )
2119, 20ifeq12d 3954 . . . 4  |-  ( -.  A  e.  _V  ->  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C )  =  if ( [. A  /  x ]. ph ,  (/) ,  (/) ) )
22 ifid 3971 . . . 4  |-  if (
[. A  /  x ]. ph ,  (/) ,  (/) )  =  (/)
2321, 22syl6req 2520 . . 3  |-  ( -.  A  e.  _V  ->  (/)  =  if ( [. A  /  x ]. ph ,  [_ A  /  x ]_ B ,  [_ A  /  x ]_ C ) )
2418, 23eqtrd 2503 . 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 1374   [wsb 1706    e. wcel 1762   _Vcvv 3108   [.wsbc 3326   [_csb 3430   (/)c0 3780   ifcif 3934
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1596  ax-4 1607  ax-5 1675  ax-6 1714  ax-7 1734  ax-10 1781  ax-11 1786  ax-12 1798  ax-13 1963  ax-ext 2440
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3an 970  df-tru 1377  df-fal 1380  df-ex 1592  df-nf 1595  df-sb 1707  df-clab 2448  df-cleq 2454  df-clel 2457  df-nfc 2612  df-rab 2818  df-v 3110  df-sbc 3327  df-csb 3431  df-dif 3474  df-un 3476  df-in 3478  df-ss 3485  df-nul 3781  df-if 3935
This theorem is referenced by:  fvmptnn04if  19112  cdlemk40  35590
  Copyright terms: Public domain W3C validator