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

Theorem pm2mpval 21397
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 21395 . . . 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 485 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑛 = 𝑁)
5 fveq2 6664 . . . . . . . . 9 (𝑟 = 𝑅 → (Poly1𝑟) = (Poly1𝑅))
65adantl 484 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1𝑟) = (Poly1𝑅))
74, 6oveq12d 7168 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat (Poly1𝑟)) = (𝑁 Mat (Poly1𝑅)))
87fveq2d 6668 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = (Base‘(𝑁 Mat (Poly1𝑅))))
9 pm2mpval.b . . . . . . 7 𝐵 = (Base‘𝐶)
10 pm2mpval.c . . . . . . . . 9 𝐶 = (𝑁 Mat 𝑃)
11 pm2mpval.p . . . . . . . . . 10 𝑃 = (Poly1𝑅)
1211oveq2i 7161 . . . . . . . . 9 (𝑁 Mat 𝑃) = (𝑁 Mat (Poly1𝑅))
1310, 12eqtri 2844 . . . . . . . 8 𝐶 = (𝑁 Mat (Poly1𝑅))
1413fveq2i 6667 . . . . . . 7 (Base‘𝐶) = (Base‘(𝑁 Mat (Poly1𝑅)))
159, 14eqtri 2844 . . . . . 6 𝐵 = (Base‘(𝑁 Mat (Poly1𝑅)))
168, 15syl6eqr 2874 . . . . 5 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
1716adantl 484 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
18 ovex 7183 . . . . . 6 (𝑛 Mat 𝑟) ∈ V
19 fvexd 6679 . . . . . . 7 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) ∈ V)
20 simpr 487 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1𝑎))
21 fveq2 6664 . . . . . . . . . 10 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2221adantr 483 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2320, 22eqtrd 2856 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1‘(𝑛 Mat 𝑟)))
2423fveq2d 6668 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ( ·𝑠𝑞) = ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))))
25 eqidd 2822 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
2623fveq2d 6668 . . . . . . . . . . . 12 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (mulGrp‘𝑞) = (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))
2726fveq2d 6668 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (.g‘(mulGrp‘𝑞)) = (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))))
28 eqidd 2822 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑘 = 𝑘)
29 fveq2 6664 . . . . . . . . . . . 12 (𝑎 = (𝑛 Mat 𝑟) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3029adantr 483 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3127, 28, 30oveq123d 7171 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)) = (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))
3224, 25, 31oveq123d 7171 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))) = ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))
3332mpteq2dv 5154 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
3423, 33oveq12d 7168 . . . . . . 7 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3519, 34csbied 3918 . . . . . 6 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3618, 35csbie 3917 . . . . 5 (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
37 oveq12 7159 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat 𝑟) = (𝑁 Mat 𝑅))
3837fveq2d 6668 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = (Poly1‘(𝑁 Mat 𝑅)))
39 pm2mpval.q . . . . . . . . 9 𝑄 = (Poly1𝐴)
40 pm2mpval.a . . . . . . . . . 10 𝐴 = (𝑁 Mat 𝑅)
4140fveq2i 6667 . . . . . . . . 9 (Poly1𝐴) = (Poly1‘(𝑁 Mat 𝑅))
4239, 41eqtri 2844 . . . . . . . 8 𝑄 = (Poly1‘(𝑁 Mat 𝑅))
4338, 42syl6eqr 2874 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = 𝑄)
4438fveq2d 6668 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅))))
45 pm2mpval.m . . . . . . . . . . 11 = ( ·𝑠𝑄)
4642fveq2i 6667 . . . . . . . . . . 11 ( ·𝑠𝑄) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4745, 46eqtri 2844 . . . . . . . . . 10 = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4844, 47syl6eqr 2874 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = )
49 eqidd 2822 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
5038fveq2d 6668 . . . . . . . . . . . 12 ((𝑛 = 𝑁𝑟 = 𝑅) → (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5150fveq2d 6668 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))))
52 pm2mpval.e . . . . . . . . . . . 12 = (.g‘(mulGrp‘𝑄))
5342fveq2i 6667 . . . . . . . . . . . . 13 (mulGrp‘𝑄) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))
5453fveq2i 6667 . . . . . . . . . . . 12 (.g‘(mulGrp‘𝑄)) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5552, 54eqtri 2844 . . . . . . . . . . 11 = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5651, 55syl6eqr 2874 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = )
57 eqidd 2822 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑘 = 𝑘)
5837fveq2d 6668 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = (var1‘(𝑁 Mat 𝑅)))
59 pm2mpval.x . . . . . . . . . . . 12 𝑋 = (var1𝐴)
6040fveq2i 6667 . . . . . . . . . . . 12 (var1𝐴) = (var1‘(𝑁 Mat 𝑅))
6159, 60eqtri 2844 . . . . . . . . . . 11 𝑋 = (var1‘(𝑁 Mat 𝑅))
6258, 61syl6eqr 2874 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = 𝑋)
6356, 57, 62oveq123d 7171 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))) = (𝑘 𝑋))
6448, 49, 63oveq123d 7171 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))) = ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))
6564mpteq2dv 5154 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))
6643, 65oveq12d 7168 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6766adantl 484 . . . . 5 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6836, 67syl5eq 2868 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6917, 68mpteq12dv 5143 . . 3 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))))) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
70 simpl 485 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑁 ∈ Fin)
71 elex 3512 . . . 4 (𝑅𝑉𝑅 ∈ V)
7271adantl 484 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑅 ∈ V)
739fvexi 6678 . . . . 5 𝐵 ∈ V
7473mptex 6980 . . . 4 (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V
7574a1i 11 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V)
763, 69, 70, 72, 75ovmpod 7296 . 2 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑁 pMatToMatPoly 𝑅) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
771, 76syl5eq 2868 1 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑇 = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 398   = wceq 1533  wcel 2110  Vcvv 3494  csb 3882  cmpt 5138  cfv 6349  (class class class)co 7150  cmpo 7152  Fincfn 8503  0cn0 11891  Basecbs 16477   ·𝑠 cvsca 16563   Σg cgsu 16708  .gcmg 18218  mulGrpcmgp 19233  var1cv1 20338  Poly1cpl1 20339   Mat cmat 21010   decompPMat cdecpmat 21364   pMatToMatPoly cpm2mp 21394
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1792  ax-4 1806  ax-5 1907  ax-6 1966  ax-7 2011  ax-8 2112  ax-9 2120  ax-10 2141  ax-11 2157  ax-12 2173  ax-ext 2793  ax-rep 5182  ax-sep 5195  ax-nul 5202  ax-pr 5321
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3an 1085  df-tru 1536  df-ex 1777  df-nf 1781  df-sb 2066  df-mo 2618  df-eu 2650  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-ral 3143  df-rex 3144  df-reu 3145  df-rab 3147  df-v 3496  df-sbc 3772  df-csb 3883  df-dif 3938  df-un 3940  df-in 3942  df-ss 3951  df-nul 4291  df-if 4467  df-sn 4561  df-pr 4563  df-op 4567  df-uni 4832  df-iun 4913  df-br 5059  df-opab 5121  df-mpt 5139  df-id 5454  df-xp 5555  df-rel 5556  df-cnv 5557  df-co 5558  df-dm 5559  df-rn 5560  df-res 5561  df-ima 5562  df-iota 6308  df-fun 6351  df-fn 6352  df-f 6353  df-f1 6354  df-fo 6355  df-f1o 6356  df-fv 6357  df-ov 7153  df-oprab 7154  df-mpo 7155  df-pm2mp 21395
This theorem is referenced by:  pm2mpfval  21398  pm2mpf  21400
  Copyright terms: Public domain W3C validator