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

Theorem pm2mpval 21406
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 21404 . . . 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 6673 . . . . . . . . 9 (𝑟 = 𝑅 → (Poly1𝑟) = (Poly1𝑅))
65adantl 484 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1𝑟) = (Poly1𝑅))
74, 6oveq12d 7177 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat (Poly1𝑟)) = (𝑁 Mat (Poly1𝑅)))
87fveq2d 6677 . . . . . 6 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = (Base‘(𝑁 Mat (Poly1𝑅))))
9 pm2mpval.b . . . . . . 7 𝐵 = (Base‘𝐶)
10 pm2mpval.c . . . . . . . . 9 𝐶 = (𝑁 Mat 𝑃)
11 pm2mpval.p . . . . . . . . . 10 𝑃 = (Poly1𝑅)
1211oveq2i 7170 . . . . . . . . 9 (𝑁 Mat 𝑃) = (𝑁 Mat (Poly1𝑅))
1310, 12eqtri 2847 . . . . . . . 8 𝐶 = (𝑁 Mat (Poly1𝑅))
1413fveq2i 6676 . . . . . . 7 (Base‘𝐶) = (Base‘(𝑁 Mat (Poly1𝑅)))
159, 14eqtri 2847 . . . . . 6 𝐵 = (Base‘(𝑁 Mat (Poly1𝑅)))
168, 15syl6eqr 2877 . . . . 5 ((𝑛 = 𝑁𝑟 = 𝑅) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
1716adantl 484 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (Base‘(𝑛 Mat (Poly1𝑟))) = 𝐵)
18 ovex 7192 . . . . . 6 (𝑛 Mat 𝑟) ∈ V
19 fvexd 6688 . . . . . . 7 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) ∈ V)
20 simpr 487 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1𝑎))
21 fveq2 6673 . . . . . . . . . 10 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2221adantr 483 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (Poly1𝑎) = (Poly1‘(𝑛 Mat 𝑟)))
2320, 22eqtrd 2859 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑞 = (Poly1‘(𝑛 Mat 𝑟)))
2423fveq2d 6677 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ( ·𝑠𝑞) = ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))))
25 eqidd 2825 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
2623fveq2d 6677 . . . . . . . . . . . 12 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (mulGrp‘𝑞) = (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))
2726fveq2d 6677 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (.g‘(mulGrp‘𝑞)) = (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))))
28 eqidd 2825 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → 𝑘 = 𝑘)
29 fveq2 6673 . . . . . . . . . . . 12 (𝑎 = (𝑛 Mat 𝑟) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3029adantr 483 . . . . . . . . . . 11 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (var1𝑎) = (var1‘(𝑛 Mat 𝑟)))
3127, 28, 30oveq123d 7180 . . . . . . . . . 10 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)) = (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))
3224, 25, 31oveq123d 7180 . . . . . . . . 9 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))) = ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))
3332mpteq2dv 5165 . . . . . . . 8 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
3423, 33oveq12d 7177 . . . . . . 7 ((𝑎 = (𝑛 Mat 𝑟) ∧ 𝑞 = (Poly1𝑎)) → (𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3519, 34csbied 3922 . . . . . 6 (𝑎 = (𝑛 Mat 𝑟) → (Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))))))
3618, 35csbie 3921 . . . . 5 (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = ((Poly1‘(𝑛 Mat 𝑟)) Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))))
37 oveq12 7168 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑛 Mat 𝑟) = (𝑁 Mat 𝑅))
3837fveq2d 6677 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = (Poly1‘(𝑁 Mat 𝑅)))
39 pm2mpval.q . . . . . . . . 9 𝑄 = (Poly1𝐴)
40 pm2mpval.a . . . . . . . . . 10 𝐴 = (𝑁 Mat 𝑅)
4140fveq2i 6676 . . . . . . . . 9 (Poly1𝐴) = (Poly1‘(𝑁 Mat 𝑅))
4239, 41eqtri 2847 . . . . . . . 8 𝑄 = (Poly1‘(𝑁 Mat 𝑅))
4338, 42syl6eqr 2877 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (Poly1‘(𝑛 Mat 𝑟)) = 𝑄)
4438fveq2d 6677 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅))))
45 pm2mpval.m . . . . . . . . . . 11 = ( ·𝑠𝑄)
4642fveq2i 6676 . . . . . . . . . . 11 ( ·𝑠𝑄) = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4745, 46eqtri 2847 . . . . . . . . . 10 = ( ·𝑠 ‘(Poly1‘(𝑁 Mat 𝑅)))
4844, 47syl6eqr 2877 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → ( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟))) = )
49 eqidd 2825 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑚 decompPMat 𝑘) = (𝑚 decompPMat 𝑘))
5038fveq2d 6677 . . . . . . . . . . . 12 ((𝑛 = 𝑁𝑟 = 𝑅) → (mulGrp‘(Poly1‘(𝑛 Mat 𝑟))) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅))))
5150fveq2d 6677 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟)))) = (.g‘(mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))))
52 pm2mpval.e . . . . . . . . . . . 12 = (.g‘(mulGrp‘𝑄))
5342fveq2i 6676 . . . . . . . . . . . . 13 (mulGrp‘𝑄) = (mulGrp‘(Poly1‘(𝑁 Mat 𝑅)))
5453fveq2i 6676 . . . . . . . . . . . 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 6677 . . . . . . . . . . 11 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = (var1‘(𝑁 Mat 𝑅)))
59 pm2mpval.x . . . . . . . . . . . 12 𝑋 = (var1𝐴)
6040fveq2i 6676 . . . . . . . . . . . 12 (var1𝐴) = (var1‘(𝑁 Mat 𝑅))
6159, 60eqtri 2847 . . . . . . . . . . 11 𝑋 = (var1‘(𝑁 Mat 𝑅))
6258, 61syl6eqr 2877 . . . . . . . . . 10 ((𝑛 = 𝑁𝑟 = 𝑅) → (var1‘(𝑛 Mat 𝑟)) = 𝑋)
6356, 57, 62oveq123d 7180 . . . . . . . . 9 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))) = (𝑘 𝑋))
6448, 49, 63oveq123d 7180 . . . . . . . 8 ((𝑛 = 𝑁𝑟 = 𝑅) → ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟)))) = ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))
6564mpteq2dv 5165 . . . . . . 7 ((𝑛 = 𝑁𝑟 = 𝑅) → (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠 ‘(Poly1‘(𝑛 Mat 𝑟)))(𝑘(.g‘(mulGrp‘(Poly1‘(𝑛 Mat 𝑟))))(var1‘(𝑛 Mat 𝑟))))) = (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))
6643, 65oveq12d 7177 . . . . . 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 2871 . . . 4 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎))))) = (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋)))))
6917, 68mpteq12dv 5154 . . 3 (((𝑁 ∈ Fin ∧ 𝑅𝑉) ∧ (𝑛 = 𝑁𝑟 = 𝑅)) → (𝑚 ∈ (Base‘(𝑛 Mat (Poly1𝑟))) ↦ (𝑛 Mat 𝑟) / 𝑎(Poly1𝑎) / 𝑞(𝑞 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘)( ·𝑠𝑞)(𝑘(.g‘(mulGrp‘𝑞))(var1𝑎)))))) = (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))))
70 simpl 485 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑁 ∈ Fin)
71 elex 3515 . . . 4 (𝑅𝑉𝑅 ∈ V)
7271adantl 484 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → 𝑅 ∈ V)
739fvexi 6687 . . . . 5 𝐵 ∈ V
7473mptex 6989 . . . 4 (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V
7574a1i 11 . . 3 ((𝑁 ∈ Fin ∧ 𝑅𝑉) → (𝑚𝐵 ↦ (𝑄 Σg (𝑘 ∈ ℕ0 ↦ ((𝑚 decompPMat 𝑘) (𝑘 𝑋))))) ∈ V)
763, 69, 70, 72, 75ovmpod 7305 . 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 398   = wceq 1536  wcel 2113  Vcvv 3497  csb 3886  cmpt 5149  cfv 6358  (class class class)co 7159  cmpo 7161  Fincfn 8512  0cn0 11900  Basecbs 16486   ·𝑠 cvsca 16572   Σg cgsu 16717  .gcmg 18227  mulGrpcmgp 19242  var1cv1 20347  Poly1cpl1 20348   Mat cmat 21019   decompPMat cdecpmat 21373   pMatToMatPoly cpm2mp 21403
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1969  ax-7 2014  ax-8 2115  ax-9 2123  ax-10 2144  ax-11 2160  ax-12 2176  ax-ext 2796  ax-rep 5193  ax-sep 5206  ax-nul 5213  ax-pr 5333
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3an 1085  df-tru 1539  df-ex 1780  df-nf 1784  df-sb 2069  df-mo 2621  df-eu 2653  df-clab 2803  df-cleq 2817  df-clel 2896  df-nfc 2966  df-ne 3020  df-ral 3146  df-rex 3147  df-reu 3148  df-rab 3150  df-v 3499  df-sbc 3776  df-csb 3887  df-dif 3942  df-un 3944  df-in 3946  df-ss 3955  df-nul 4295  df-if 4471  df-sn 4571  df-pr 4573  df-op 4577  df-uni 4842  df-iun 4924  df-br 5070  df-opab 5132  df-mpt 5150  df-id 5463  df-xp 5564  df-rel 5565  df-cnv 5566  df-co 5567  df-dm 5568  df-rn 5569  df-res 5570  df-ima 5571  df-iota 6317  df-fun 6360  df-fn 6361  df-f 6362  df-f1 6363  df-fo 6364  df-f1o 6365  df-fv 6366  df-ov 7162  df-oprab 7163  df-mpo 7164  df-pm2mp 21404
This theorem is referenced by:  pm2mpfval  21407  pm2mpf  21409
  Copyright terms: Public domain W3C validator