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

Theorem pm2mpval 21400
Description: Value of the transformation of a polynomial matrix into a polynomial over matrices. (Contributed by AV, 5-Dec-2019.)
Hypotheses
Ref Expression
pm2mpval.p 𝑃 = (Poly1𝑅)
pm2mpval.c 𝐶 = (𝑁 Mat 𝑃)
pm2mpval.b 𝐵 = (Base‘𝐶)
pm2mpval.m = ( ·𝑠𝑄)
pm2mpval.e = (.g‘(mulGrp‘𝑄))
pm2mpval.x 𝑋 = (var1𝐴)
pm2mpval.a 𝐴 = (𝑁 Mat 𝑅)
pm2mpval.q 𝑄 = (Poly1𝐴)
pm2mpval.t 𝑇 = (𝑁 pMatToMatPoly 𝑅)
Assertion
Ref Expression
pm2mpval ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑇 = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
Distinct variable groups:   𝐵,𝑚   𝑘,𝑁,𝑚   𝑅,𝑘,𝑚   𝑚,𝑉
Allowed substitution hints:   𝐴(𝑘,𝑚)   𝐵(𝑘)   𝐶(𝑘,𝑚)   𝑃(𝑘,𝑚)   𝑄(𝑘,𝑚)   𝑇(𝑘,𝑚)   (𝑘,𝑚)   (𝑘,𝑚)   𝑉(𝑘)   𝑋(𝑘,𝑚)

Proof of Theorem pm2mpval
Dummy variables 𝑛 𝑟 𝑎 𝑞 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 pm2mpval.t . 2 𝑇 = (𝑁 pMatToMatPoly 𝑅)
2 df-pm2mp 21398 . . . 4 pMatToMatPoly = (𝑛 ∈ Fin, 𝑟 ∈ V ↦ (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))))))
32a1i 11 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → pMatToMatPoly = (𝑛 ∈ Fin, 𝑟 ∈ V ↦ (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))))))
4 simpl 486 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑛 = 𝑁)
5 fveq2 6645 . . . . . . . . 9 (𝑟 = 𝑅 → (Poly1𝑟) = (Poly1𝑅))
65adantl 485 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1𝑟) = (Poly1𝑅))
74, 6oveq12d 7153 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat (Poly1𝑟)) = (𝑁 Mat (Poly1𝑅)))
87fveq2d 6649 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = (Base‘(𝑁 Mat (Poly1𝑅))))
9 pm2mpval.b . . . . . . 7 𝐵 = (Base‘𝐶)
10 pm2mpval.c . . . . . . . . 9 𝐶 = (𝑁 Mat 𝑃)
11 pm2mpval.p . . . . . . . . . 10 𝑃 = (Poly1𝑅)
1211oveq2i 7146 . . . . . . . . 9 (𝑁 Mat 𝑃) = (𝑁 Mat (Poly1𝑅))
1310, 12eqtri 2821 . . . . . . . 8 𝐶 = (𝑁 Mat (Poly1𝑅))
1413fveq2i 6648 . . . . . . 7 (Base‘𝐶) = (Base‘(𝑁 Mat (Poly1𝑅)))
159, 14eqtri 2821 . . . . . 6 𝐵 = (Base‘(𝑁 Mat (Poly1𝑅)))
168, 15eqtr4di 2851 . . . . 5 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
1716adantl 485 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
18 ovex 7168 . . . . . 6 (𝑛 Mat 𝑟) ∈ V
19 fvexd 6660 . . . . . . 7 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) ∈ V)
20 simpr 488 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1𝑎))
21 fveq2 6645 . . . . . . . . . 10 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2221adantr 484 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2320, 22eqtrd 2833 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1‘(𝑛 Mat 𝑟)))
2423fveq2d 6649 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ( ·𝑠𝑞) = ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))))
25 eqidd 2799 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
2623fveq2d 6649 . . . . . . . . . . . 12 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (mulGrp‘𝑞) = (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))
2726fveq2d 6649 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (.g‘(mulGrp‘𝑞)) = (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))))
28 eqidd 2799 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑘 = 𝑘)
29 fveq2 6645 . . . . . . . . . . . 12 (𝑎 = (𝑛 Mat 𝑟) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3029adantr 484 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3127, 28, 30oveq123d 7156 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)) = (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))
3224, 25, 31oveq123d 7156 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))) = ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))
3332mpteq2dv 5126 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
3423, 33oveq12d 7153 . . . . . . 7 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3519, 34csbied 3864 . . . . . 6 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3618, 35csbie 3863 . . . . 5 (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
37 oveq12 7144 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat 𝑟) = (𝑁 Mat 𝑅))
3837fveq2d 6649 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = (Poly1‘(𝑁 Mat 𝑅)))
39 pm2mpval.q . . . . . . . . 9 𝑄 = (Poly1𝐴)
40 pm2mpval.a . . . . . . . . . 10 𝐴 = (𝑁 Mat 𝑅)
4140fveq2i 6648 . . . . . . . . 9 (Poly1𝐴) = (Poly1‘(𝑁 Mat 𝑅))
4239, 41eqtri 2821 . . . . . . . 8 𝑄 = (Poly1‘(𝑁 Mat 𝑅))
4338, 42eqtr4di 2851 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = 𝑄)
4438fveq2d 6649 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅))))
45 pm2mpval.m . . . . . . . . . . 11 = ( ·𝑠𝑄)
4642fveq2i 6648 . . . . . . . . . . 11 ( ·𝑠𝑄) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4745, 46eqtri 2821 . . . . . . . . . 10 = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4844, 47eqtr4di 2851 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = )
49 eqidd 2799 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
5038fveq2d 6649 . . . . . . . . . . . 12 ((𝑛 = 𝑁𝑟 = 𝑅) → (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5150fveq2d 6649 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))))
52 pm2mpval.e . . . . . . . . . . . 12 = (.g‘(mulGrp‘𝑄))
5342fveq2i 6648 . . . . . . . . . . . . 13 (mulGrp‘𝑄) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))
5453fveq2i 6648 . . . . . . . . . . . 12 (.g‘(mulGrp‘𝑄)) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5552, 54eqtri 2821 . . . . . . . . . . 11 = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5651, 55eqtr4di 2851 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = )
57 eqidd 2799 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑘 = 𝑘)
5837fveq2d 6649 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = (var1‘(𝑁 Mat 𝑅)))
59 pm2mpval.x . . . . . . . . . . . 12 𝑋 = (var1𝐴)
6040fveq2i 6648 . . . . . . . . . . . 12 (var1𝐴) = (var1‘(𝑁 Mat 𝑅))
6159, 60eqtri 2821 . . . . . . . . . . 11 𝑋 = (var1‘(𝑁 Mat 𝑅))
6258, 61eqtr4di 2851 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = 𝑋)
6356, 57, 62oveq123d 7156 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))) = (𝑘 𝑋))
6448, 49, 63oveq123d 7156 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))) = ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))
6564mpteq2dv 5126 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))
6643, 65oveq12d 7153 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6766adantl 485 . . . . 5 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6836, 67syl5eq 2845 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6917, 68mpteq12dv 5115 . . 3 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))))) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
70 simpl 486 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑁 ∈ Fin)
71 elex 3459 . . . 4 (𝑅𝑉𝑅 ∈ V)
7271adantl 485 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑅 ∈ V)
739fvexi 6659 . . . . 5 𝐵 ∈ V
7473mptex 6963 . . . 4 (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V
7574a1i 11 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V)
763, 69, 70, 72, 75ovmpod 7281 . 2 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑁 pMatToMatPoly 𝑅) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
771, 76syl5eq 2845 1 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑇 = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 399   = wceq 1538  wcel 2111  Vcvv 3441  csb 3828  cmpt 5110  cfv 6324  (class class class)co 7135  cmpo 7137  Fincfn 8492  0cn0 11885  Basecbs 16475   ·𝑠 cvsca 16561   Σg cgsu 16706  .gcmg 18216  mulGrpcmgp 19232  var1cv1 20805  Poly1cpl1 20806   Mat cmat 21012   decompPMat cdecpmat 21367   pMatToMatPoly cpm2mp 21397
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 1911  ax-6 1970  ax-7 2015  ax-8 2113  ax-9 2121  ax-10 2142  ax-11 2158  ax-12 2175  ax-ext 2770  ax-rep 5154  ax-sep 5167  ax-nul 5174  ax-pr 5295
This theorem depends on definitions:  df-bi 210  df-an 400  df-or 845  df-3an 1086  df-tru 1541  df-ex 1782  df-nf 1786  df-sb 2070  df-mo 2598  df-eu 2629  df-clab 2777  df-cleq 2791  df-clel 2870  df-nfc 2938  df-ne 2988  df-ral 3111  df-rex 3112  df-reu 3113  df-rab 3115  df-v 3443  df-sbc 3721  df-csb 3829  df-dif 3884  df-un 3886  df-in 3888  df-ss 3898  df-nul 4244  df-if 4426  df-sn 4526  df-pr 4528  df-op 4532  df-uni 4801  df-iun 4883  df-br 5031  df-opab 5093  df-mpt 5111  df-id 5425  df-xp 5525  df-rel 5526  df-cnv 5527  df-co 5528  df-dm 5529  df-rn 5530  df-res 5531  df-ima 5532  df-iota 6283  df-fun 6326  df-fn 6327  df-f 6328  df-f1 6329  df-fo 6330  df-f1o 6331  df-fv 6332  df-ov 7138  df-oprab 7139  df-mpo 7140  df-pm2mp 21398
This theorem is referenced by:  pm2mpfval  21401  pm2mpf  21403
  Copyright terms: Public domain W3C validator