Metamath Proof Explorer


Theorem esplyindfv

Description: A recursive formula for the elementary symmetric polynomials, evaluated at a given set of points Z . (Contributed by Thierry Arnoux, 15-Feb-2026)

Ref Expression
Hypotheses esplyindfv.m ⊢ · ˙ = ⋅ R
esplyindfv.i ⊢ φ → I ∈ Fin
esplyindfv.r ⊢ φ → R ∈ CRing
esplyindfv.y ⊢ φ → Y ∈ I
esplyindfv.j ⊢ J = I ∖ Y
esplyindfv.e No typesetting found for |- E = ( J eSymPoly R ) with typecode |-
esplyindfv.k ⊢ φ → K ∈ 0 … J
esplyindfv.c ⊢ C = h ∈ ℕ 0 J | finSupp 0 ⁡ h
esplyindfv.f No typesetting found for |- F = ( ( I eSymPoly R ) ` ( K + 1 ) ) with typecode |-
esplyindfv.b ⊢ B = Base R
esplyindfv.q ⊢ Q = I eval R
esplyindfv.o ⊢ O = J eval R
esplyindfv.p ⊢ + ˙ = + R
esplyindfv.z ⊢ φ → Z : I ⟶ B
Assertion esplyindfv ⊢ φ → Q ⁡ F ⁡ Z = Z ⁡ Y · ˙ O ⁡ E ⁡ K ⁡ Z ↾ J + ˙ O ⁡ E ⁡ K + 1 ⁡ Z ↾ J

Proof

Step Hyp Ref Expression
1 esplyindfv.m ⊢ · ˙ = ⋅ R
2 esplyindfv.i ⊢ φ → I ∈ Fin
3 esplyindfv.r ⊢ φ → R ∈ CRing
4 esplyindfv.y ⊢ φ → Y ∈ I
5 esplyindfv.j ⊢ J = I ∖ Y
6 esplyindfv.e Could not format E = ( J eSymPoly R ) : No typesetting found for |- E = ( J eSymPoly R ) with typecode |-
7 esplyindfv.k ⊢ φ → K ∈ 0 … J
8 esplyindfv.c ⊢ C = h ∈ ℕ 0 J | finSupp 0 ⁡ h
9 esplyindfv.f Could not format F = ( ( I eSymPoly R ) ` ( K + 1 ) ) : No typesetting found for |- F = ( ( I eSymPoly R ) ` ( K + 1 ) ) with typecode |-
10 esplyindfv.b ⊢ B = Base R
11 esplyindfv.q ⊢ Q = I eval R
12 esplyindfv.o ⊢ O = J eval R
13 esplyindfv.p ⊢ + ˙ = + R
14 esplyindfv.z ⊢ φ → Z : I ⟶ B
15 eqid ⊢ I mPoly R = I mPoly R
16 eqid ⊢ I mVar R = I mVar R
17 eqid ⊢ + I mPoly R = + I mPoly R
18 eqid ⊢ ⋅ I mPoly R = ⋅ I mPoly R
19 eqid ⊢ h ∈ ℕ 0 I | finSupp 0 ⁡ h = h ∈ ℕ 0 I | finSupp 0 ⁡ h
20 eqid Could not format ( ( I extendVars R ) ` Y ) = ( ( I extendVars R ) ` Y ) : No typesetting found for |- ( ( I extendVars R ) ` Y ) = ( ( I extendVars R ) ` Y ) with typecode |-
21 3 crngringd ⊢ φ → R ∈ Ring
22 7 elfzelzd ⊢ φ → K ∈ ℤ
23 hashcl ⊢ I ∈ Fin → I ∈ ℕ 0
24 2 23 syl ⊢ φ → I ∈ ℕ 0
25 24 nn0zd ⊢ φ → I ∈ ℤ
26 5 uneq1i ⊢ J ∪ Y = I ∖ Y ∪ Y
27 4 snssd ⊢ φ → Y ⊆ I
28 undifr ⊢ Y ⊆ I ↔ I ∖ Y ∪ Y = I
29 27 28 sylib ⊢ φ → I ∖ Y ∪ Y = I
30 26 29 eqtrid ⊢ φ → J ∪ Y = I
31 30 fveq2d ⊢ φ → J ∪ Y = I
32 difssd ⊢ φ → I ∖ Y ⊆ I
33 5 32 eqsstrid ⊢ φ → J ⊆ I
34 2 33 ssfid ⊢ φ → J ∈ Fin
35 neldifsnd ⊢ φ → ¬ Y ∈ I ∖ Y
36 5 eleq2i ⊢ Y ∈ J ↔ Y ∈ I ∖ Y
37 35 36 sylnibr ⊢ φ → ¬ Y ∈ J
38 hashunsng ⊢ Y ∈ I → J ∈ Fin ∧ ¬ Y ∈ J → J ∪ Y = J + 1
39 38 imp ⊢ Y ∈ I ∧ J ∈ Fin ∧ ¬ Y ∈ J → J ∪ Y = J + 1
40 4 34 37 39 syl12anc ⊢ φ → J ∪ Y = J + 1
41 31 40 eqtr3d ⊢ φ → I = J + 1
42 41 oveq1d ⊢ φ → I − 1 = J + 1 - 1
43 hashcl ⊢ J ∈ Fin → J ∈ ℕ 0
44 34 43 syl ⊢ φ → J ∈ ℕ 0
45 44 nn0cnd ⊢ φ → J ∈ ℂ
46 1cnd ⊢ φ → 1 ∈ ℂ
47 45 46 pncand ⊢ φ → J + 1 - 1 = J
48 42 47 eqtr2d ⊢ φ → J = I − 1
49 48 oveq2d ⊢ φ → 0 … J = 0 … I − 1
50 7 49 eleqtrd ⊢ φ → K ∈ 0 … I − 1
51 elfzp1b ⊢ K ∈ ℤ ∧ I ∈ ℤ → K ∈ 0 … I − 1 ↔ K + 1 ∈ 1 … I
52 51 biimpa ⊢ K ∈ ℤ ∧ I ∈ ℤ ∧ K ∈ 0 … I − 1 → K + 1 ∈ 1 … I
53 22 25 50 52 syl21anc ⊢ φ → K + 1 ∈ 1 … I
54 15 16 17 18 19 20 2 21 4 5 6 53 8 esplyind Could not format ( ph -> ( ( I eSymPoly R ) ` ( K + 1 ) ) = ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) : No typesetting found for |- ( ph -> ( ( I eSymPoly R ) ` ( K + 1 ) ) = ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) with typecode |-
55 9 54 eqtrid Could not format ( ph -> F = ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) : No typesetting found for |- ( ph -> F = ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) with typecode |-
56 55 fveq2d Could not format ( ph -> ( Q ` F ) = ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ) : No typesetting found for |- ( ph -> ( Q ` F ) = ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ) with typecode |-
57 56 fveq1d Could not format ( ph -> ( ( Q ` F ) ` Z ) = ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) ) : No typesetting found for |- ( ph -> ( ( Q ` F ) ` Z ) = ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) ) with typecode |-
58 eqid ⊢ Base I mPoly R = Base I mPoly R
59 10 fvexi ⊢ B ∈ V
60 59 a1i ⊢ φ → B ∈ V
61 60 2 14 elmapdd ⊢ φ → Z ∈ B I
62 11 15 10 58 18 1 2 3 61 16 4 evlvarval ⊢ φ → I mVar R ⁡ Y ∈ Base I mPoly R ∧ Q ⁡ I mVar R ⁡ Y ⁡ Z = Z ⁡ Y
63 eqid ⊢ 0 R = 0 R
64 eqid ⊢ Base J mPoly R = Base J mPoly R
65 22 zcnd ⊢ φ → K ∈ ℂ
66 65 46 pncand ⊢ φ → K + 1 - 1 = K
67 66 fveq2d ⊢ φ → E ⁡ K + 1 - 1 = E ⁡ K
68 6 fveq1i Could not format ( E ` K ) = ( ( J eSymPoly R ) ` K ) : No typesetting found for |- ( E ` K ) = ( ( J eSymPoly R ) ` K ) with typecode |-
69 fz0ssnn0 ⊢ 0 … J ⊆ ℕ 0
70 69 7 sselid ⊢ φ → K ∈ ℕ 0
71 8 34 21 70 64 esplympl Could not format ( ph -> ( ( J eSymPoly R ) ` K ) e. ( Base ` ( J mPoly R ) ) ) : No typesetting found for |- ( ph -> ( ( J eSymPoly R ) ` K ) e. ( Base ` ( J mPoly R ) ) ) with typecode |-
72 68 71 eqeltrid ⊢ φ → E ⁡ K ∈ Base J mPoly R
73 67 72 eqeltrd ⊢ φ → E ⁡ K + 1 - 1 ∈ Base J mPoly R
74 19 63 2 21 10 5 64 4 73 58 extvfvcl Could not format ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) e. ( Base ` ( I mPoly R ) ) ) : No typesetting found for |- ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) e. ( Base ` ( I mPoly R ) ) ) with typecode |-
75 67 fveq2d Could not format ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) = ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) : No typesetting found for |- ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) = ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) with typecode |-
76 75 fveq2d Could not format ( ph -> ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) = ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ) : No typesetting found for |- ( ph -> ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) = ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ) with typecode |-
77 76 fveq1d Could not format ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ` Z ) ) : No typesetting found for |- ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ` Z ) ) with typecode |-
78 eqid Could not format ( I extendVars R ) = ( I extendVars R ) : No typesetting found for |- ( I extendVars R ) = ( I extendVars R ) with typecode |-
79 11 12 5 64 10 78 3 2 4 72 14 evlextv Could not format ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) : No typesetting found for |- ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` K ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) with typecode |-
80 77 79 eqtrd Could not format ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) : No typesetting found for |- ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) with typecode |-
81 74 80 jca Could not format ( ph -> ( ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) ) : No typesetting found for |- ( ph -> ( ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) ) with typecode |-
82 11 15 10 58 18 1 2 3 61 62 81 evlmulval Could not format ( ph -> ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ) ` Z ) = ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) ) ) : No typesetting found for |- ( ph -> ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ) ` Z ) = ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) ) ) with typecode |-
83 6 fveq1i Could not format ( E ` ( K + 1 ) ) = ( ( J eSymPoly R ) ` ( K + 1 ) ) : No typesetting found for |- ( E ` ( K + 1 ) ) = ( ( J eSymPoly R ) ` ( K + 1 ) ) with typecode |-
84 peano2nn0 ⊢ K ∈ ℕ 0 → K + 1 ∈ ℕ 0
85 70 84 syl ⊢ φ → K + 1 ∈ ℕ 0
86 8 34 21 85 64 esplympl Could not format ( ph -> ( ( J eSymPoly R ) ` ( K + 1 ) ) e. ( Base ` ( J mPoly R ) ) ) : No typesetting found for |- ( ph -> ( ( J eSymPoly R ) ` ( K + 1 ) ) e. ( Base ` ( J mPoly R ) ) ) with typecode |-
87 83 86 eqeltrid ⊢ φ → E ⁡ K + 1 ∈ Base J mPoly R
88 19 63 2 21 10 5 64 4 87 58 extvfvcl Could not format ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) e. ( Base ` ( I mPoly R ) ) ) : No typesetting found for |- ( ph -> ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) e. ( Base ` ( I mPoly R ) ) ) with typecode |-
89 11 12 5 64 10 78 3 2 4 87 14 evlextv Could not format ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) : No typesetting found for |- ( ph -> ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) with typecode |-
90 88 89 jca Could not format ( ph -> ( ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) : No typesetting found for |- ( ph -> ( ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ` Z ) = ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) with typecode |-
91 11 15 10 58 17 13 2 3 61 82 90 evladdval Could not format ( ph -> ( ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) = ( ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) .+ ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) ) : No typesetting found for |- ( ph -> ( ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) e. ( Base ` ( I mPoly R ) ) /\ ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) = ( ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) .+ ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) ) with typecode |-
92 91 simprd Could not format ( ph -> ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) = ( ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) .+ ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) : No typesetting found for |- ( ph -> ( ( Q ` ( ( ( ( I mVar R ) ` Y ) ( .r ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( ( K + 1 ) - 1 ) ) ) ) ( +g ` ( I mPoly R ) ) ( ( ( I extendVars R ) ` Y ) ` ( E ` ( K + 1 ) ) ) ) ) ` Z ) = ( ( ( Z ` Y ) .x. ( ( O ` ( E ` K ) ) ` ( Z |` J ) ) ) .+ ( ( O ` ( E ` ( K + 1 ) ) ) ` ( Z |` J ) ) ) ) with typecode |-
93 57 92 eqtrd ⊢ φ → Q ⁡ F ⁡ Z = Z ⁡ Y · ˙ O ⁡ E ⁡ K ⁡ Z ↾ J + ˙ O ⁡ E ⁡ K + 1 ⁡ Z ↾ J