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

Theorem pm2mpval 21403
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 21401 . . . 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 6661 . . . . . . . . 9 (𝑟 = 𝑅 → (Poly1𝑟) = (Poly1𝑅))
65adantl 485 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1𝑟) = (Poly1𝑅))
74, 6oveq12d 7167 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat (Poly1𝑟)) = (𝑁 Mat (Poly1𝑅)))
87fveq2d 6665 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = (Base‘(𝑁 Mat (Poly1𝑅))))
9 pm2mpval.b . . . . . . 7 𝐵 = (Base‘𝐶)
10 pm2mpval.c . . . . . . . . 9 𝐶 = (𝑁 Mat 𝑃)
11 pm2mpval.p . . . . . . . . . 10 𝑃 = (Poly1𝑅)
1211oveq2i 7160 . . . . . . . . 9 (𝑁 Mat 𝑃) = (𝑁 Mat (Poly1𝑅))
1310, 12eqtri 2847 . . . . . . . 8 𝐶 = (𝑁 Mat (Poly1𝑅))
1413fveq2i 6664 . . . . . . 7 (Base‘𝐶) = (Base‘(𝑁 Mat (Poly1𝑅)))
159, 14eqtri 2847 . . . . . 6 𝐵 = (Base‘(𝑁 Mat (Poly1𝑅)))
168, 15syl6eqr 2877 . . . . 5 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
1716adantl 485 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
18 ovex 7182 . . . . . 6 (𝑛 Mat 𝑟) ∈ V
19 fvexd 6676 . . . . . . 7 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) ∈ V)
20 simpr 488 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1𝑎))
21 fveq2 6661 . . . . . . . . . 10 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2221adantr 484 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2320, 22eqtrd 2859 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1‘(𝑛 Mat 𝑟)))
2423fveq2d 6665 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ( ·𝑠𝑞) = ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))))
25 eqidd 2825 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
2623fveq2d 6665 . . . . . . . . . . . 12 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (mulGrp‘𝑞) = (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))
2726fveq2d 6665 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (.g‘(mulGrp‘𝑞)) = (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))))
28 eqidd 2825 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑘 = 𝑘)
29 fveq2 6661 . . . . . . . . . . . 12 (𝑎 = (𝑛 Mat 𝑟) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3029adantr 484 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3127, 28, 30oveq123d 7170 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)) = (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))
3224, 25, 31oveq123d 7170 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))) = ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))
3332mpteq2dv 5148 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
3423, 33oveq12d 7167 . . . . . . 7 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3519, 34csbied 3902 . . . . . 6 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3618, 35csbie 3901 . . . . 5 (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
37 oveq12 7158 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat 𝑟) = (𝑁 Mat 𝑅))
3837fveq2d 6665 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = (Poly1‘(𝑁 Mat 𝑅)))
39 pm2mpval.q . . . . . . . . 9 𝑄 = (Poly1𝐴)
40 pm2mpval.a . . . . . . . . . 10 𝐴 = (𝑁 Mat 𝑅)
4140fveq2i 6664 . . . . . . . . 9 (Poly1𝐴) = (Poly1‘(𝑁 Mat 𝑅))
4239, 41eqtri 2847 . . . . . . . 8 𝑄 = (Poly1‘(𝑁 Mat 𝑅))
4338, 42syl6eqr 2877 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = 𝑄)
4438fveq2d 6665 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅))))
45 pm2mpval.m . . . . . . . . . . 11 = ( ·𝑠𝑄)
4642fveq2i 6664 . . . . . . . . . . 11 ( ·𝑠𝑄) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4745, 46eqtri 2847 . . . . . . . . . 10 = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4844, 47syl6eqr 2877 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = )
49 eqidd 2825 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
5038fveq2d 6665 . . . . . . . . . . . 12 ((𝑛 = 𝑁𝑟 = 𝑅) → (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5150fveq2d 6665 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))))
52 pm2mpval.e . . . . . . . . . . . 12 = (.g‘(mulGrp‘𝑄))
5342fveq2i 6664 . . . . . . . . . . . . 13 (mulGrp‘𝑄) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))
5453fveq2i 6664 . . . . . . . . . . . 12 (.g‘(mulGrp‘𝑄)) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5552, 54eqtri 2847 . . . . . . . . . . 11 = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5651, 55syl6eqr 2877 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = )
57 eqidd 2825 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → 𝑘 = 𝑘)
5837fveq2d 6665 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = (var1‘(𝑁 Mat 𝑅)))
59 pm2mpval.x . . . . . . . . . . . 12 𝑋 = (var1𝐴)
6040fveq2i 6664 . . . . . . . . . . . 12 (var1𝐴) = (var1‘(𝑁 Mat 𝑅))
6159, 60eqtri 2847 . . . . . . . . . . 11 𝑋 = (var1‘(𝑁 Mat 𝑅))
6258, 61syl6eqr 2877 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = 𝑋)
6356, 57, 62oveq123d 7170 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))) = (𝑘 𝑋))
6448, 49, 63oveq123d 7170 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))) = ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))
6564mpteq2dv 5148 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))
6643, 65oveq12d 7167 . . . . . 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 2871 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6917, 68mpteq12dv 5137 . . 3 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))))) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
70 simpl 486 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑁 ∈ Fin)
71 elex 3498 . . . 4 (𝑅𝑉𝑅 ∈ V)
7271adantl 485 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑅 ∈ V)
739fvexi 6675 . . . . 5 𝐵 ∈ V
7473mptex 6977 . . . 4 (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V
7574a1i 11 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V)
763, 69, 70, 72, 75ovmpod 7295 . 2 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑁 pMatToMatPoly 𝑅) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
771, 76syl5eq 2871 1 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑇 = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 399   = wceq 1538  wcel 2115  Vcvv 3480  csb 3866  cmpt 5132  cfv 6343  (class class class)co 7149  cmpo 7151  Fincfn 8505  0cn0 11894  Basecbs 16483   ·𝑠 cvsca 16569   Σg cgsu 16714  .gcmg 18224  mulGrpcmgp 19239  var1cv1 20344  Poly1cpl1 20345   Mat cmat 21016   decompPMat cdecpmat 21370   pMatToMatPoly cpm2mp 21400
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 1912  ax-6 1971  ax-7 2016  ax-8 2117  ax-9 2125  ax-10 2146  ax-11 2162  ax-12 2179  ax-ext 2796  ax-rep 5176  ax-sep 5189  ax-nul 5196  ax-pr 5317
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 2071  df-mo 2624  df-eu 2655  df-clab 2803  df-cleq 2817  df-clel 2896  df-nfc 2964  df-ne 3015  df-ral 3138  df-rex 3139  df-reu 3140  df-rab 3142  df-v 3482  df-sbc 3759  df-csb 3867  df-dif 3922  df-un 3924  df-in 3926  df-ss 3936  df-nul 4277  df-if 4451  df-sn 4551  df-pr 4553  df-op 4557  df-uni 4825  df-iun 4907  df-br 5053  df-opab 5115  df-mpt 5133  df-id 5447  df-xp 5548  df-rel 5549  df-cnv 5550  df-co 5551  df-dm 5552  df-rn 5553  df-res 5554  df-ima 5555  df-iota 6302  df-fun 6345  df-fn 6346  df-f 6347  df-f1 6348  df-fo 6349  df-f1o 6350  df-fv 6351  df-ov 7152  df-oprab 7153  df-mpo 7154  df-pm2mp 21401
This theorem is referenced by:  pm2mpfval  21404  pm2mpf  21406
  Copyright terms: Public domain W3C validator