This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Convert a univariate polynomial function to multivariate. (Contributed by Mario Carneiro, 12-Jun-2015)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | pf1rcl.q | ⊢ 𝑄 = ran ( eval1 ‘ 𝑅 ) | |
| pf1f.b | ⊢ 𝐵 = ( Base ‘ 𝑅 ) | ||
| mpfpf1.q | ⊢ 𝐸 = ran ( 1o eval 𝑅 ) | ||
| Assertion | pf1mpf | ⊢ ( 𝐹 ∈ 𝑄 → ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | pf1rcl.q | ⊢ 𝑄 = ran ( eval1 ‘ 𝑅 ) | |
| 2 | pf1f.b | ⊢ 𝐵 = ( Base ‘ 𝑅 ) | |
| 3 | mpfpf1.q | ⊢ 𝐸 = ran ( 1o eval 𝑅 ) | |
| 4 | 1 | pf1rcl | ⊢ ( 𝐹 ∈ 𝑄 → 𝑅 ∈ CRing ) |
| 5 | id | ⊢ ( 𝐹 ∈ 𝑄 → 𝐹 ∈ 𝑄 ) | |
| 6 | 5 1 | eleqtrdi | ⊢ ( 𝐹 ∈ 𝑄 → 𝐹 ∈ ran ( eval1 ‘ 𝑅 ) ) |
| 7 | eqid | ⊢ ( eval1 ‘ 𝑅 ) = ( eval1 ‘ 𝑅 ) | |
| 8 | eqid | ⊢ ( Poly1 ‘ 𝑅 ) = ( Poly1 ‘ 𝑅 ) | |
| 9 | eqid | ⊢ ( 𝑅 ↑s 𝐵 ) = ( 𝑅 ↑s 𝐵 ) | |
| 10 | 7 8 9 2 | evl1rhm | ⊢ ( 𝑅 ∈ CRing → ( eval1 ‘ 𝑅 ) ∈ ( ( Poly1 ‘ 𝑅 ) RingHom ( 𝑅 ↑s 𝐵 ) ) ) |
| 11 | 4 10 | syl | ⊢ ( 𝐹 ∈ 𝑄 → ( eval1 ‘ 𝑅 ) ∈ ( ( Poly1 ‘ 𝑅 ) RingHom ( 𝑅 ↑s 𝐵 ) ) ) |
| 12 | eqid | ⊢ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) = ( Base ‘ ( Poly1 ‘ 𝑅 ) ) | |
| 13 | eqid | ⊢ ( Base ‘ ( 𝑅 ↑s 𝐵 ) ) = ( Base ‘ ( 𝑅 ↑s 𝐵 ) ) | |
| 14 | 12 13 | rhmf | ⊢ ( ( eval1 ‘ 𝑅 ) ∈ ( ( Poly1 ‘ 𝑅 ) RingHom ( 𝑅 ↑s 𝐵 ) ) → ( eval1 ‘ 𝑅 ) : ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ⟶ ( Base ‘ ( 𝑅 ↑s 𝐵 ) ) ) |
| 15 | ffn | ⊢ ( ( eval1 ‘ 𝑅 ) : ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ⟶ ( Base ‘ ( 𝑅 ↑s 𝐵 ) ) → ( eval1 ‘ 𝑅 ) Fn ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) | |
| 16 | fvelrnb | ⊢ ( ( eval1 ‘ 𝑅 ) Fn ( Base ‘ ( Poly1 ‘ 𝑅 ) ) → ( 𝐹 ∈ ran ( eval1 ‘ 𝑅 ) ↔ ∃ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 ) ) | |
| 17 | 11 14 15 16 | 4syl | ⊢ ( 𝐹 ∈ 𝑄 → ( 𝐹 ∈ ran ( eval1 ‘ 𝑅 ) ↔ ∃ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 ) ) |
| 18 | 6 17 | mpbid | ⊢ ( 𝐹 ∈ 𝑄 → ∃ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 ) |
| 19 | eqid | ⊢ ( 1o eval 𝑅 ) = ( 1o eval 𝑅 ) | |
| 20 | eqid | ⊢ ( 1o mPoly 𝑅 ) = ( 1o mPoly 𝑅 ) | |
| 21 | 8 12 | ply1bas | ⊢ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) = ( Base ‘ ( 1o mPoly 𝑅 ) ) |
| 22 | 7 19 2 20 21 | evl1val | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ) ) |
| 23 | 22 | coeq1d | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ) |
| 24 | coass | ⊢ ( ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ) | |
| 25 | df1o2 | ⊢ 1o = { ∅ } | |
| 26 | 2 | fvexi | ⊢ 𝐵 ∈ V |
| 27 | 0ex | ⊢ ∅ ∈ V | |
| 28 | eqid | ⊢ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) = ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) | |
| 29 | 25 26 27 28 | mapsncnv | ⊢ ◡ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) = ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) |
| 30 | 29 | coeq1i | ⊢ ( ◡ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) |
| 31 | 25 26 27 28 | mapsnf1o2 | ⊢ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) : ( 𝐵 ↑m 1o ) –1-1-onto→ 𝐵 |
| 32 | f1ococnv1 | ⊢ ( ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) : ( 𝐵 ↑m 1o ) –1-1-onto→ 𝐵 → ( ◡ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( I ↾ ( 𝐵 ↑m 1o ) ) ) | |
| 33 | 31 32 | mp1i | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ◡ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( I ↾ ( 𝐵 ↑m 1o ) ) ) |
| 34 | 30 33 | eqtr3id | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( I ↾ ( 𝐵 ↑m 1o ) ) ) |
| 35 | 34 | coeq2d | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ) = ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( I ↾ ( 𝐵 ↑m 1o ) ) ) ) |
| 36 | 24 35 | eqtrid | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑧 ∈ 𝐵 ↦ ( 1o × { 𝑧 } ) ) ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( I ↾ ( 𝐵 ↑m 1o ) ) ) ) |
| 37 | eqid | ⊢ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) = ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) | |
| 38 | eqid | ⊢ ( Base ‘ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) = ( Base ‘ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) | |
| 39 | simpl | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → 𝑅 ∈ CRing ) | |
| 40 | ovexd | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( 𝐵 ↑m 1o ) ∈ V ) | |
| 41 | 1on | ⊢ 1o ∈ On | |
| 42 | 19 2 20 37 | evlrhm | ⊢ ( ( 1o ∈ On ∧ 𝑅 ∈ CRing ) → ( 1o eval 𝑅 ) ∈ ( ( 1o mPoly 𝑅 ) RingHom ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) ) |
| 43 | 41 42 | mpan | ⊢ ( 𝑅 ∈ CRing → ( 1o eval 𝑅 ) ∈ ( ( 1o mPoly 𝑅 ) RingHom ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) ) |
| 44 | 21 38 | rhmf | ⊢ ( ( 1o eval 𝑅 ) ∈ ( ( 1o mPoly 𝑅 ) RingHom ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) → ( 1o eval 𝑅 ) : ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ⟶ ( Base ‘ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) ) |
| 45 | 43 44 | syl | ⊢ ( 𝑅 ∈ CRing → ( 1o eval 𝑅 ) : ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ⟶ ( Base ‘ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) ) |
| 46 | 45 | ffvelcdmda | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∈ ( Base ‘ ( 𝑅 ↑s ( 𝐵 ↑m 1o ) ) ) ) |
| 47 | 37 2 38 39 40 46 | pwselbas | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 1o eval 𝑅 ) ‘ 𝑦 ) : ( 𝐵 ↑m 1o ) ⟶ 𝐵 ) |
| 48 | fcoi1 | ⊢ ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) : ( 𝐵 ↑m 1o ) ⟶ 𝐵 → ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( I ↾ ( 𝐵 ↑m 1o ) ) ) = ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ) | |
| 49 | 47 48 | syl | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∘ ( I ↾ ( 𝐵 ↑m 1o ) ) ) = ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ) |
| 50 | 23 36 49 | 3eqtrd | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ) |
| 51 | 45 | ffnd | ⊢ ( 𝑅 ∈ CRing → ( 1o eval 𝑅 ) Fn ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) |
| 52 | fnfvelrn | ⊢ ( ( ( 1o eval 𝑅 ) Fn ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∈ ran ( 1o eval 𝑅 ) ) | |
| 53 | 51 52 | sylan | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∈ ran ( 1o eval 𝑅 ) ) |
| 54 | 53 3 | eleqtrrdi | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( 1o eval 𝑅 ) ‘ 𝑦 ) ∈ 𝐸 ) |
| 55 | 50 54 | eqeltrd | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) |
| 56 | coeq1 | ⊢ ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 → ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) = ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ) | |
| 57 | 56 | eleq1d | ⊢ ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 → ( ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ↔ ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) ) |
| 58 | 55 57 | syl5ibcom | ⊢ ( ( 𝑅 ∈ CRing ∧ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) → ( ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 → ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) ) |
| 59 | 58 | rexlimdva | ⊢ ( 𝑅 ∈ CRing → ( ∃ 𝑦 ∈ ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ( ( eval1 ‘ 𝑅 ) ‘ 𝑦 ) = 𝐹 → ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) ) |
| 60 | 4 18 59 | sylc | ⊢ ( 𝐹 ∈ 𝑄 → ( 𝐹 ∘ ( 𝑥 ∈ ( 𝐵 ↑m 1o ) ↦ ( 𝑥 ‘ ∅ ) ) ) ∈ 𝐸 ) |