MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  marrepfval Structured version   Visualization version   GIF version

Theorem marrepfval 21909
Description: First substitution for the definition of the matrix row replacement function. (Contributed by AV, 12-Feb-2019.) (Proof shortened by AV, 2-Mar-2024.)
Hypotheses
Ref Expression
marrepfval.a 𝐴 = (𝑁 Mat 𝑅)
marrepfval.b 𝐵 = (Base‘𝐴)
marrepfval.q 𝑄 = (𝑁 matRRep 𝑅)
marrepfval.z 0 = (0g𝑅)
Assertion
Ref Expression
marrepfval 𝑄 = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))))
Distinct variable groups:   𝐵,𝑚,𝑠   𝑖,𝑁,𝑗,𝑘,𝑙,𝑚,𝑠   𝑅,𝑖,𝑗,𝑘,𝑙,𝑚,𝑠
Allowed substitution hints:   𝐴(𝑖,𝑗,𝑘,𝑚,𝑠,𝑙)   𝐵(𝑖,𝑗,𝑘,𝑙)   𝑄(𝑖,𝑗,𝑘,𝑚,𝑠,𝑙)   0 (𝑖,𝑗,𝑘,𝑚,𝑠,𝑙)

Proof of Theorem marrepfval
Dummy variables 𝑛 𝑟 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 marrepfval.q . 2 𝑄 = (𝑁 matRRep 𝑅)
2 marrepfval.b . . . . . 6 𝐵 = (Base‘𝐴)
32fvexi 6856 . . . . 5 𝐵 ∈ V
4 fvexd 6857 . . . . 5 ((𝑁 ∈ V ∧ 𝑅 ∈ V) → (Base‘𝑅) ∈ V)
5 mpoexga 8010 . . . . 5 ((𝐵 ∈ V ∧ (Base‘𝑅) ∈ V) → (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))) ∈ V)
63, 4, 5sylancr 587 . . . 4 ((𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))) ∈ V)
7 oveq12 7366 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat 𝑟) = (𝑁 Mat 𝑅))
87fveq2d 6846 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat 𝑟)) = (Base‘(𝑁 Mat 𝑅)))
9 marrepfval.a . . . . . . . . 9 𝐴 = (𝑁 Mat 𝑅)
109fveq2i 6845 . . . . . . . 8 (Base‘𝐴) = (Base‘(𝑁 Mat 𝑅))
112, 10eqtri 2764 . . . . . . 7 𝐵 = (Base‘(𝑁 Mat 𝑅))
128, 11eqtr4di 2794 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat 𝑟)) = 𝐵)
13 fveq2 6842 . . . . . . 7 (𝑟 = 𝑅 → (Base‘𝑟) = (Base‘𝑅))
1413adantl 482 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘𝑟) = (Base‘𝑅))
15 simpl 483 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑛 = 𝑁)
16 fveq2 6842 . . . . . . . . . . . 12 (𝑟 = 𝑅 → (0g𝑟) = (0g𝑅))
17 marrepfval.z . . . . . . . . . . . 12 0 = (0g𝑅)
1816, 17eqtr4di 2794 . . . . . . . . . . 11 (𝑟 = 𝑅 → (0g𝑟) = 0 )
1918ifeq2d 4506 . . . . . . . . . 10 (𝑟 = 𝑅 → if(𝑗 = 𝑙, 𝑠, (0g𝑟)) = if(𝑗 = 𝑙, 𝑠, 0 ))
2019ifeq1d 4505 . . . . . . . . 9 (𝑟 = 𝑅 → if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗)) = if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))
2120adantl 482 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗)) = if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))
2215, 15, 21mpoeq123dv 7432 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑖𝑛, 𝑗𝑛 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗))) = (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))
2315, 15, 22mpoeq123dv 7432 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘𝑛, 𝑙𝑛 ↦ (𝑖𝑛, 𝑗𝑛 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗)))) = (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))))
2412, 14, 23mpoeq123dv 7432 . . . . 5 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑚 ∈ (Base‘(𝑛 Mat 𝑟)), 𝑠 ∈ (Base‘𝑟) ↦ (𝑘𝑛, 𝑙𝑛 ↦ (𝑖𝑛, 𝑗𝑛 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗))))) = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))))
25 df-marrep 21907 . . . . 5 matRRep = (𝑛 ∈ V, 𝑟 ∈ V ↦ (𝑚 ∈ (Base‘(𝑛 Mat 𝑟)), 𝑠 ∈ (Base‘𝑟) ↦ (𝑘𝑛, 𝑙𝑛 ↦ (𝑖𝑛, 𝑗𝑛 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, (0g𝑟)), (𝑖𝑚𝑗))))))
2624, 25ovmpoga 7509 . . . 4 ((𝑁 ∈ V ∧ 𝑅 ∈ V ∧ (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))) ∈ V) → (𝑁 matRRep 𝑅) = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))))
276, 26mpd3an3 1462 . . 3 ((𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝑁 matRRep 𝑅) = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))))
2825mpondm0 7594 . . . 4 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝑁 matRRep 𝑅) = ∅)
29 matbas0pc 21756 . . . . . . 7 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → (Base‘(𝑁 Mat 𝑅)) = ∅)
3011, 29eqtrid 2788 . . . . . 6 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → 𝐵 = ∅)
3130orcd 871 . . . . 5 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝐵 = ∅ ∨ (Base‘𝑅) = ∅))
32 0mpo0 7440 . . . . 5 ((𝐵 = ∅ ∨ (Base‘𝑅) = ∅) → (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))) = ∅)
3331, 32syl 17 . . . 4 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))) = ∅)
3428, 33eqtr4d 2779 . . 3 (¬ (𝑁 ∈ V ∧ 𝑅 ∈ V) → (𝑁 matRRep 𝑅) = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗))))))
3527, 34pm2.61i 182 . 2 (𝑁 matRRep 𝑅) = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))))
361, 35eqtri 2764 1 𝑄 = (𝑚𝐵, 𝑠 ∈ (Base‘𝑅) ↦ (𝑘𝑁, 𝑙𝑁 ↦ (𝑖𝑁, 𝑗𝑁 ↦ if(𝑖 = 𝑘, if(𝑗 = 𝑙, 𝑠, 0 ), (𝑖𝑚𝑗)))))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wa 396  wo 845   = wceq 1541  wcel 2106  Vcvv 3445  c0 4282  ifcif 4486  cfv 6496  (class class class)co 7357  cmpo 7359  Basecbs 17083  0gc0g 17321   Mat cmat 21754   matRRep cmarrep 21905
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2707  ax-rep 5242  ax-sep 5256  ax-nul 5263  ax-pow 5320  ax-pr 5384  ax-un 7672  ax-cnex 11107  ax-1cn 11109  ax-addcl 11111
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 846  df-3or 1088  df-3an 1089  df-tru 1544  df-fal 1554  df-ex 1782  df-nf 1786  df-sb 2068  df-mo 2538  df-eu 2567  df-clab 2714  df-cleq 2728  df-clel 2814  df-nfc 2889  df-ne 2944  df-ral 3065  df-rex 3074  df-reu 3354  df-rab 3408  df-v 3447  df-sbc 3740  df-csb 3856  df-dif 3913  df-un 3915  df-in 3917  df-ss 3927  df-pss 3929  df-nul 4283  df-if 4487  df-pw 4562  df-sn 4587  df-pr 4589  df-op 4593  df-uni 4866  df-iun 4956  df-br 5106  df-opab 5168  df-mpt 5189  df-tr 5223  df-id 5531  df-eprel 5537  df-po 5545  df-so 5546  df-fr 5588  df-we 5590  df-xp 5639  df-rel 5640  df-cnv 5641  df-co 5642  df-dm 5643  df-rn 5644  df-res 5645  df-ima 5646  df-pred 6253  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6498  df-fn 6499  df-f 6500  df-f1 6501  df-fo 6502  df-f1o 6503  df-fv 6504  df-ov 7360  df-oprab 7361  df-mpo 7362  df-om 7803  df-1st 7921  df-2nd 7922  df-frecs 8212  df-wrecs 8243  df-recs 8317  df-rdg 8356  df-nn 12154  df-slot 17054  df-ndx 17066  df-base 17084  df-mat 21755  df-marrep 21907
This theorem is referenced by:  marrepval0  21910
  Copyright terms: Public domain W3C validator