Metamath Proof Explorer


Theorem psrcom

Description: Commutative law for the ring of power series. (Contributed by Mario Carneiro, 7-Jan-2015)

Ref Expression
Hypotheses psrring.s
|- S = ( I mPwSer R )
psrring.i
|- ( ph -> I e. V )
psrring.r
|- ( ph -> R e. Ring )
psrass.d
|- D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin }
psrass.t
|- .X. = ( .r ` S )
psrass.b
|- B = ( Base ` S )
psrass.x
|- ( ph -> X e. B )
psrass.y
|- ( ph -> Y e. B )
psrcom.c
|- ( ph -> R e. CRing )
Assertion psrcom
|- ( ph -> ( X .X. Y ) = ( Y .X. X ) )

Proof

Step Hyp Ref Expression
1 psrring.s
 |-  S = ( I mPwSer R )
2 psrring.i
 |-  ( ph -> I e. V )
3 psrring.r
 |-  ( ph -> R e. Ring )
4 psrass.d
 |-  D = { f e. ( NN0 ^m I ) | ( `' f " NN ) e. Fin }
5 psrass.t
 |-  .X. = ( .r ` S )
6 psrass.b
 |-  B = ( Base ` S )
7 psrass.x
 |-  ( ph -> X e. B )
8 psrass.y
 |-  ( ph -> Y e. B )
9 psrcom.c
 |-  ( ph -> R e. CRing )
10 eqid
 |-  ( Base ` R ) = ( Base ` R )
11 eqid
 |-  ( 0g ` R ) = ( 0g ` R )
12 ringcmn
 |-  ( R e. Ring -> R e. CMnd )
13 3 12 syl
 |-  ( ph -> R e. CMnd )
14 13 adantr
 |-  ( ( ph /\ x e. D ) -> R e. CMnd )
15 4 psrbaglefi
 |-  ( x e. D -> { g e. D | g oR <_ x } e. Fin )
16 15 adantl
 |-  ( ( ph /\ x e. D ) -> { g e. D | g oR <_ x } e. Fin )
17 3 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> R e. Ring )
18 1 10 4 6 7 psrelbas
 |-  ( ph -> X : D --> ( Base ` R ) )
19 18 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> X : D --> ( Base ` R ) )
20 breq1
 |-  ( g = k -> ( g oR <_ x <-> k oR <_ x ) )
21 20 elrab
 |-  ( k e. { g e. D | g oR <_ x } <-> ( k e. D /\ k oR <_ x ) )
22 21 bilani
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( k e. D /\ k oR <_ x ) )
23 22 simpld
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k e. D )
24 19 23 ffvelcdmd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( X ` k ) e. ( Base ` R ) )
25 1 10 4 6 8 psrelbas
 |-  ( ph -> Y : D --> ( Base ` R ) )
26 25 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> Y : D --> ( Base ` R ) )
27 simplr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> x e. D )
28 4 psrbagf
 |-  ( k e. D -> k : I --> NN0 )
29 23 28 syl
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k : I --> NN0 )
30 22 simprd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k oR <_ x )
31 4 psrbagcon
 |-  ( ( x e. D /\ k : I --> NN0 /\ k oR <_ x ) -> ( ( x oF - k ) e. D /\ ( x oF - k ) oR <_ x ) )
32 27 29 30 31 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( ( x oF - k ) e. D /\ ( x oF - k ) oR <_ x ) )
33 32 simpld
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( x oF - k ) e. D )
34 26 33 ffvelcdmd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( Y ` ( x oF - k ) ) e. ( Base ` R ) )
35 eqid
 |-  ( .r ` R ) = ( .r ` R )
36 10 35 ringcl
 |-  ( ( R e. Ring /\ ( X ` k ) e. ( Base ` R ) /\ ( Y ` ( x oF - k ) ) e. ( Base ` R ) ) -> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) e. ( Base ` R ) )
37 17 24 34 36 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) e. ( Base ` R ) )
38 37 fmpttd
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) : { g e. D | g oR <_ x } --> ( Base ` R ) )
39 ovex
 |-  ( NN0 ^m I ) e. _V
40 4 39 rabex2
 |-  D e. _V
41 40 a1i
 |-  ( ( ph /\ x e. D ) -> D e. _V )
42 rabexg
 |-  ( D e. _V -> { g e. D | g oR <_ x } e. _V )
43 41 42 syl
 |-  ( ( ph /\ x e. D ) -> { g e. D | g oR <_ x } e. _V )
44 43 mptexd
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) e. _V )
45 funmpt
 |-  Fun ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) )
46 45 a1i
 |-  ( ( ph /\ x e. D ) -> Fun ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) )
47 fvexd
 |-  ( ( ph /\ x e. D ) -> ( 0g ` R ) e. _V )
48 suppssdm
 |-  ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) supp ( 0g ` R ) ) C_ dom ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) )
49 eqid
 |-  ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) = ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) )
50 49 dmmptss
 |-  dom ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) C_ { g e. D | g oR <_ x }
51 48 50 sstri
 |-  ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) supp ( 0g ` R ) ) C_ { g e. D | g oR <_ x }
52 51 a1i
 |-  ( ( ph /\ x e. D ) -> ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) supp ( 0g ` R ) ) C_ { g e. D | g oR <_ x } )
53 suppssfifsupp
 |-  ( ( ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) e. _V /\ Fun ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) /\ ( 0g ` R ) e. _V ) /\ ( { g e. D | g oR <_ x } e. Fin /\ ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) supp ( 0g ` R ) ) C_ { g e. D | g oR <_ x } ) ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) finSupp ( 0g ` R ) )
54 44 46 47 16 52 53 syl32anc
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) finSupp ( 0g ` R ) )
55 eqid
 |-  { g e. D | g oR <_ x } = { g e. D | g oR <_ x }
56 4 55 psrbagconf1o
 |-  ( x e. D -> ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) : { g e. D | g oR <_ x } -1-1-onto-> { g e. D | g oR <_ x } )
57 56 adantl
 |-  ( ( ph /\ x e. D ) -> ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) : { g e. D | g oR <_ x } -1-1-onto-> { g e. D | g oR <_ x } )
58 10 11 14 16 38 54 57 gsumf1o
 |-  ( ( ph /\ x e. D ) -> ( R gsum ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) ) = ( R gsum ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) o. ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) ) ) )
59 simplr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x e. D )
60 simpr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j e. { g e. D | g oR <_ x } )
61 4 55 psrbagconcl
 |-  ( ( x e. D /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. { g e. D | g oR <_ x } )
62 59 60 61 syl2anc
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. { g e. D | g oR <_ x } )
63 eqidd
 |-  ( ( ph /\ x e. D ) -> ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) = ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) )
64 eqidd
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) = ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) )
65 fveq2
 |-  ( k = ( x oF - j ) -> ( X ` k ) = ( X ` ( x oF - j ) ) )
66 oveq2
 |-  ( k = ( x oF - j ) -> ( x oF - k ) = ( x oF - ( x oF - j ) ) )
67 66 fveq2d
 |-  ( k = ( x oF - j ) -> ( Y ` ( x oF - k ) ) = ( Y ` ( x oF - ( x oF - j ) ) ) )
68 65 67 oveq12d
 |-  ( k = ( x oF - j ) -> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) = ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` ( x oF - ( x oF - j ) ) ) ) )
69 62 63 64 68 fmptco
 |-  ( ( ph /\ x e. D ) -> ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) o. ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) ) = ( j e. { g e. D | g oR <_ x } |-> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` ( x oF - ( x oF - j ) ) ) ) ) )
70 4 psrbagf
 |-  ( x e. D -> x : I --> NN0 )
71 70 adantl
 |-  ( ( ph /\ x e. D ) -> x : I --> NN0 )
72 71 adantr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x : I --> NN0 )
73 72 ffvelcdmda
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( x ` z ) e. NN0 )
74 breq1
 |-  ( g = j -> ( g oR <_ x <-> j oR <_ x ) )
75 74 elrab
 |-  ( j e. { g e. D | g oR <_ x } <-> ( j e. D /\ j oR <_ x ) )
76 75 bilani
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( j e. D /\ j oR <_ x ) )
77 76 simpld
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j e. D )
78 4 psrbagf
 |-  ( j e. D -> j : I --> NN0 )
79 77 78 syl
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j : I --> NN0 )
80 79 ffvelcdmda
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( j ` z ) e. NN0 )
81 nn0cn
 |-  ( ( x ` z ) e. NN0 -> ( x ` z ) e. CC )
82 nn0cn
 |-  ( ( j ` z ) e. NN0 -> ( j ` z ) e. CC )
83 nncan
 |-  ( ( ( x ` z ) e. CC /\ ( j ` z ) e. CC ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
84 81 82 83 syl2an
 |-  ( ( ( x ` z ) e. NN0 /\ ( j ` z ) e. NN0 ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
85 73 80 84 syl2anc
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
86 85 mpteq2dva
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( z e. I |-> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) ) = ( z e. I |-> ( j ` z ) ) )
87 2 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> I e. V )
88 ovex
 |-  ( ( x ` z ) - ( j ` z ) ) e. _V
89 88 a1i
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( ( x ` z ) - ( j ` z ) ) e. _V )
90 72 feqmptd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x = ( z e. I |-> ( x ` z ) ) )
91 79 feqmptd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j = ( z e. I |-> ( j ` z ) ) )
92 87 73 80 90 91 offval2
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) = ( z e. I |-> ( ( x ` z ) - ( j ` z ) ) ) )
93 87 73 89 90 92 offval2
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - ( x oF - j ) ) = ( z e. I |-> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) ) )
94 86 93 91 3eqtr4d
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - ( x oF - j ) ) = j )
95 94 fveq2d
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( Y ` ( x oF - ( x oF - j ) ) ) = ( Y ` j ) )
96 95 oveq2d
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` ( x oF - ( x oF - j ) ) ) ) = ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` j ) ) )
97 9 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> R e. CRing )
98 18 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> X : D --> ( Base ` R ) )
99 76 simprd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j oR <_ x )
100 4 psrbagcon
 |-  ( ( x e. D /\ j : I --> NN0 /\ j oR <_ x ) -> ( ( x oF - j ) e. D /\ ( x oF - j ) oR <_ x ) )
101 59 79 99 100 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( ( x oF - j ) e. D /\ ( x oF - j ) oR <_ x ) )
102 101 simpld
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. D )
103 98 102 ffvelcdmd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( X ` ( x oF - j ) ) e. ( Base ` R ) )
104 25 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> Y : D --> ( Base ` R ) )
105 104 77 ffvelcdmd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( Y ` j ) e. ( Base ` R ) )
106 10 35 crngcom
 |-  ( ( R e. CRing /\ ( X ` ( x oF - j ) ) e. ( Base ` R ) /\ ( Y ` j ) e. ( Base ` R ) ) -> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` j ) ) = ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) )
107 97 103 105 106 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` j ) ) = ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) )
108 96 107 eqtrd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` ( x oF - ( x oF - j ) ) ) ) = ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) )
109 108 mpteq2dva
 |-  ( ( ph /\ x e. D ) -> ( j e. { g e. D | g oR <_ x } |-> ( ( X ` ( x oF - j ) ) ( .r ` R ) ( Y ` ( x oF - ( x oF - j ) ) ) ) ) = ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) )
110 69 109 eqtrd
 |-  ( ( ph /\ x e. D ) -> ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) o. ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) ) = ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) )
111 110 oveq2d
 |-  ( ( ph /\ x e. D ) -> ( R gsum ( ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) o. ( j e. { g e. D | g oR <_ x } |-> ( x oF - j ) ) ) ) = ( R gsum ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) ) )
112 58 111 eqtrd
 |-  ( ( ph /\ x e. D ) -> ( R gsum ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) ) = ( R gsum ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) ) )
113 112 mpteq2dva
 |-  ( ph -> ( x e. D |-> ( R gsum ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) ) ) = ( x e. D |-> ( R gsum ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) ) ) )
114 1 6 35 5 4 7 8 psrmulfval
 |-  ( ph -> ( X .X. Y ) = ( x e. D |-> ( R gsum ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) ) ) )
115 1 6 35 5 4 8 7 psrmulfval
 |-  ( ph -> ( Y .X. X ) = ( x e. D |-> ( R gsum ( j e. { g e. D | g oR <_ x } |-> ( ( Y ` j ) ( .r ` R ) ( X ` ( x oF - j ) ) ) ) ) ) )
116 113 114 115 3eqtr4d
 |-  ( ph -> ( X .X. Y ) = ( Y .X. X ) )