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 simpr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k e. { g e. D | g oR <_ x } )
21 breq1
 |-  ( g = k -> ( g oR <_ x <-> k oR <_ x ) )
22 21 elrab
 |-  ( k e. { g e. D | g oR <_ x } <-> ( k e. D /\ k oR <_ x ) )
23 20 22 sylib
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( k e. D /\ k oR <_ x ) )
24 23 simpld
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k e. D )
25 19 24 ffvelrnd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( X ` k ) e. ( Base ` R ) )
26 1 10 4 6 8 psrelbas
 |-  ( ph -> Y : D --> ( Base ` R ) )
27 26 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> Y : D --> ( Base ` R ) )
28 simplr
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> x e. D )
29 4 psrbagf
 |-  ( k e. D -> k : I --> NN0 )
30 24 29 syl
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k : I --> NN0 )
31 23 simprd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> k oR <_ x )
32 4 psrbagcon
 |-  ( ( x e. D /\ k : I --> NN0 /\ k oR <_ x ) -> ( ( x oF - k ) e. D /\ ( x oF - k ) oR <_ x ) )
33 28 30 31 32 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( ( x oF - k ) e. D /\ ( x oF - k ) oR <_ x ) )
34 33 simpld
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( x oF - k ) e. D )
35 27 34 ffvelrnd
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( Y ` ( x oF - k ) ) e. ( Base ` R ) )
36 eqid
 |-  ( .r ` R ) = ( .r ` R )
37 10 36 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 ) )
38 17 25 35 37 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ k e. { g e. D | g oR <_ x } ) -> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) e. ( Base ` R ) )
39 38 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 ) )
40 ovex
 |-  ( NN0 ^m I ) e. _V
41 4 40 rabex2
 |-  D e. _V
42 41 a1i
 |-  ( ( ph /\ x e. D ) -> D e. _V )
43 rabexg
 |-  ( D e. _V -> { g e. D | g oR <_ x } e. _V )
44 42 43 syl
 |-  ( ( ph /\ x e. D ) -> { g e. D | g oR <_ x } e. _V )
45 44 mptexd
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) e. _V )
46 funmpt
 |-  Fun ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) )
47 46 a1i
 |-  ( ( ph /\ x e. D ) -> Fun ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) )
48 fvexd
 |-  ( ( ph /\ x e. D ) -> ( 0g ` R ) e. _V )
49 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 ) ) ) )
50 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 ) ) ) )
51 50 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 }
52 49 51 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 }
53 52 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 } )
54 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 ) )
55 45 47 48 16 53 54 syl32anc
 |-  ( ( ph /\ x e. D ) -> ( k e. { g e. D | g oR <_ x } |-> ( ( X ` k ) ( .r ` R ) ( Y ` ( x oF - k ) ) ) ) finSupp ( 0g ` R ) )
56 eqid
 |-  { g e. D | g oR <_ x } = { g e. D | g oR <_ x }
57 4 56 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 } )
58 57 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 } )
59 10 11 14 16 39 55 58 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 ) ) ) ) )
60 simplr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x e. D )
61 simpr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j e. { g e. D | g oR <_ x } )
62 4 56 psrbagconcl
 |-  ( ( x e. D /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. { g e. D | g oR <_ x } )
63 60 61 62 syl2anc
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. { g e. D | g oR <_ x } )
64 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 ) ) )
65 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 ) ) ) ) )
66 fveq2
 |-  ( k = ( x oF - j ) -> ( X ` k ) = ( X ` ( x oF - j ) ) )
67 oveq2
 |-  ( k = ( x oF - j ) -> ( x oF - k ) = ( x oF - ( x oF - j ) ) )
68 67 fveq2d
 |-  ( k = ( x oF - j ) -> ( Y ` ( x oF - k ) ) = ( Y ` ( x oF - ( x oF - j ) ) ) )
69 66 68 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 ) ) ) ) )
70 63 64 65 69 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 ) ) ) ) ) )
71 4 psrbagf
 |-  ( x e. D -> x : I --> NN0 )
72 71 adantl
 |-  ( ( ph /\ x e. D ) -> x : I --> NN0 )
73 72 adantr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x : I --> NN0 )
74 73 ffvelrnda
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( x ` z ) e. NN0 )
75 breq1
 |-  ( g = j -> ( g oR <_ x <-> j oR <_ x ) )
76 75 elrab
 |-  ( j e. { g e. D | g oR <_ x } <-> ( j e. D /\ j oR <_ x ) )
77 61 76 sylib
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( j e. D /\ j oR <_ x ) )
78 77 simpld
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j e. D )
79 4 psrbagf
 |-  ( j e. D -> j : I --> NN0 )
80 78 79 syl
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j : I --> NN0 )
81 80 ffvelrnda
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( j ` z ) e. NN0 )
82 nn0cn
 |-  ( ( x ` z ) e. NN0 -> ( x ` z ) e. CC )
83 nn0cn
 |-  ( ( j ` z ) e. NN0 -> ( j ` z ) e. CC )
84 nncan
 |-  ( ( ( x ` z ) e. CC /\ ( j ` z ) e. CC ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
85 82 83 84 syl2an
 |-  ( ( ( x ` z ) e. NN0 /\ ( j ` z ) e. NN0 ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
86 74 81 85 syl2anc
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( ( x ` z ) - ( ( x ` z ) - ( j ` z ) ) ) = ( j ` z ) )
87 86 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 ) ) )
88 2 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> I e. V )
89 ovex
 |-  ( ( x ` z ) - ( j ` z ) ) e. _V
90 89 a1i
 |-  ( ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) /\ z e. I ) -> ( ( x ` z ) - ( j ` z ) ) e. _V )
91 73 feqmptd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> x = ( z e. I |-> ( x ` z ) ) )
92 80 feqmptd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j = ( z e. I |-> ( j ` z ) ) )
93 88 74 81 91 92 offval2
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) = ( z e. I |-> ( ( x ` z ) - ( j ` z ) ) ) )
94 88 74 90 91 93 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 ) ) ) ) )
95 87 94 92 3eqtr4d
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - ( x oF - j ) ) = j )
96 95 fveq2d
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( Y ` ( x oF - ( x oF - j ) ) ) = ( Y ` j ) )
97 96 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 ) ) )
98 9 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> R e. CRing )
99 18 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> X : D --> ( Base ` R ) )
100 77 simprd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> j oR <_ x )
101 4 psrbagcon
 |-  ( ( x e. D /\ j : I --> NN0 /\ j oR <_ x ) -> ( ( x oF - j ) e. D /\ ( x oF - j ) oR <_ x ) )
102 60 80 100 101 syl3anc
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( ( x oF - j ) e. D /\ ( x oF - j ) oR <_ x ) )
103 102 simpld
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( x oF - j ) e. D )
104 99 103 ffvelrnd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( X ` ( x oF - j ) ) e. ( Base ` R ) )
105 26 ad2antrr
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> Y : D --> ( Base ` R ) )
106 105 78 ffvelrnd
 |-  ( ( ( ph /\ x e. D ) /\ j e. { g e. D | g oR <_ x } ) -> ( Y ` j ) e. ( Base ` R ) )
107 10 36 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 ) ) ) )
108 98 104 106 107 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 ) ) ) )
109 97 108 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 ) ) ) )
110 109 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 ) ) ) ) )
111 70 110 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 ) ) ) ) )
112 111 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 ) ) ) ) ) )
113 59 112 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 ) ) ) ) ) )
114 113 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 ) ) ) ) ) ) )
115 1 6 36 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 ) ) ) ) ) ) )
116 1 6 36 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 ) ) ) ) ) ) )
117 114 115 116 3eqtr4d
 |-  ( ph -> ( X .X. Y ) = ( Y .X. X ) )