:: POLYNOM1  semantic presentation
Lemma1: 
for b1, b2 being  Nat holds  multnat  . b1,b2 = b1 * b2
 
by BINOP_2:def 24;
theorem Th1: :: POLYNOM1:1
canceled; 
theorem Th2: :: POLYNOM1:2
theorem Th3: :: POLYNOM1:3
for 
b1, 
b2, 
b3 being  
Nat holds  
(b1 -' b2) -' b3 = b1 -' (b2 + b3)
theorem Th4: :: POLYNOM1:4
theorem Th5: :: POLYNOM1:5
theorem Th6: :: POLYNOM1:6
theorem Th7: :: POLYNOM1:7
registration
let c1 be  non 
empty  set ;
let c2, 
c3 be   
BinOp of 
c1;
let c4, 
c5 be    
Element of 
c1;
cluster  doubleLoopStr(# 
a1,
a2,
a3,
a4,
a5 #)
 -> non 
empty ;
coherence 
not  doubleLoopStr(# c1,c2,c3,c4,c5 #) is empty
 by STRUCT_0:def 1;
 
end;
 
theorem Th8: :: POLYNOM1:8
theorem Th9: :: POLYNOM1:9
theorem Th10: :: POLYNOM1:10
theorem Th11: :: POLYNOM1:11
theorem Th12: :: POLYNOM1:12
theorem Th13: :: POLYNOM1:13
theorem Th14: :: POLYNOM1:14
theorem Th15: :: POLYNOM1:15
theorem Th16: :: POLYNOM1:16
theorem Th17: :: POLYNOM1:17
theorem Th18: :: POLYNOM1:18
:: deftheorem Def1  POLYNOM1:def 1 : 
canceled; 
:: deftheorem Def2   defines * POLYNOM1:def 2 : 
:: deftheorem Def3   defines * POLYNOM1:def 3 : 
theorem Th19: :: POLYNOM1:19
theorem Th20: :: POLYNOM1:20
theorem Th21: :: POLYNOM1:21
theorem Th22: :: POLYNOM1:22
theorem Th23: :: POLYNOM1:23
theorem Th24: :: POLYNOM1:24
theorem Th25: :: POLYNOM1:25
canceled; 
theorem Th26: :: POLYNOM1:26
canceled; 
theorem Th27: :: POLYNOM1:27
theorem Th28: :: POLYNOM1:28
theorem Th29: :: POLYNOM1:29
theorem Th30: :: POLYNOM1:30
theorem Th31: :: POLYNOM1:31
theorem Th32: :: POLYNOM1:32
theorem Th33: :: POLYNOM1:33
theorem Th34: :: POLYNOM1:34
theorem Th35: :: POLYNOM1:35
theorem Th36: :: POLYNOM1:36
:: deftheorem Def4  POLYNOM1:def 4 : 
canceled; 
:: deftheorem Def5   defines + POLYNOM1:def 5 : 
:: deftheorem Def6   defines -' POLYNOM1:def 6 : 
theorem Th37: :: POLYNOM1:37
theorem Th38: :: POLYNOM1:38
theorem Th39: :: POLYNOM1:39
theorem Th40: :: POLYNOM1:40
:: deftheorem Def7   defines support POLYNOM1:def 7 : 
theorem Th41: :: POLYNOM1:41
:: deftheorem Def8   defines finite-support POLYNOM1:def 8 : 
theorem Th42: :: POLYNOM1:42
theorem Th43: :: POLYNOM1:43
:: deftheorem Def9   defines Support POLYNOM1:def 9 : 
:: deftheorem Def10   defines finite-Support POLYNOM1:def 10 : 
theorem Th44: :: POLYNOM1:44
:: deftheorem Def11   defines < POLYNOM1:def 11 : 
for 
b1 being  
Ordinal for 
b2, 
b3 being  
bag of 
b1 holds 
 ( 
b2 < b3 iff ex 
b4 being  
Ordinal st 
( 
b2 . b4 < b3 . b4 & ( for 
b5 being  
Ordinal  st 
b5 in b4 holds 
b2 . b5 = b3 . b5 ) ) );
theorem Th45: :: POLYNOM1:45
for 
b1 being  
Ordinal for 
b2, 
b3, 
b4 being  
bag of 
b1  st 
b2 < b3 & 
b3 < b4 holds 
b2 < b4
:: deftheorem Def12   defines <=' POLYNOM1:def 12 : 
for 
b1 being  
Ordinal for 
b2, 
b3 being  
bag of 
b1 holds 
 ( 
b2 <=' b3 iff ( 
b2 < b3 or 
b2 = b3 ) );
theorem Th46: :: POLYNOM1:46
theorem Th47: :: POLYNOM1:47
for 
b1 being  
Ordinal for 
b2, 
b3, 
b4 being  
bag of 
b1  st 
b2 < b3 & 
b3 <=' b4 holds 
b2 < b4
theorem Th48: :: POLYNOM1:48
for 
b1 being  
Ordinal for 
b2, 
b3, 
b4 being  
bag of 
b1  st 
b2 <=' b3 & 
b3 < b4 holds 
b2 < b4
theorem Th49: :: POLYNOM1:49
for 
b1 being  
Ordinal for 
b2, 
b3 being  
bag of 
b1  holds 
( 
b2 <=' b3 or 
b3 <=' b2 )
:: deftheorem Def13   defines divides POLYNOM1:def 13 : 
for 
b1 being   
set  for 
b2, 
b3 being  
bag of 
b1 holds 
 ( 
b2 divides b3 iff for 
b4 being   
set  holds  
b2 . b4 <= b3 . b4 );
theorem Th50: :: POLYNOM1:50
for 
b1 being   
set  for 
b2, 
b3 being  
bag of 
b1  st ( for 
b4 being   
set   st 
b4 in b1 holds 
b2 . b4 <= b3 . b4 ) holds 
b2 divides b3
theorem Th51: :: POLYNOM1:51
theorem Th52: :: POLYNOM1:52
for 
b1 being   
set  for 
b2, 
b3 being  
bag of 
b1 holds  
(b3 + b2) -' b2 = b3
theorem Th53: :: POLYNOM1:53
theorem Th54: :: POLYNOM1:54
for 
b1 being   
set  for 
b2, 
b3, 
b4 being  
bag of 
b1  st 
b2 = b3 + b4 holds 
b3 divides b2
:: deftheorem Def14   defines Bags POLYNOM1:def 14 : 
for 
b1 being   
set  for 
b2 being   
set  holds 
 ( 
b2 =  Bags b1 iff for 
b3 being   
set  holds 
 ( 
b3 in b2 iff 
b3 is   
bag of 
b1 ) );
theorem Th55: :: POLYNOM1:55
:: deftheorem Def15   defines EmptyBag POLYNOM1:def 15 : 
theorem Th56: :: POLYNOM1:56
theorem Th57: :: POLYNOM1:57
theorem Th58: :: POLYNOM1:58
theorem Th59: :: POLYNOM1:59
theorem Th60: :: POLYNOM1:60
theorem Th61: :: POLYNOM1:61
theorem Th62: :: POLYNOM1:62
theorem Th63: :: POLYNOM1:63
theorem Th64: :: POLYNOM1:64
:: deftheorem Def16   defines BagOrder POLYNOM1:def 16 : 
Lemma69: 
for b1 being  Ordinal holds   BagOrder b1 is_reflexive_in  Bags b1
 
Lemma70: 
for b1 being  Ordinal holds   BagOrder b1 is_antisymmetric_in  Bags b1
 
Lemma71: 
for b1 being  Ordinal holds   BagOrder b1 is_transitive_in  Bags b1
 
Lemma72: 
for b1 being  Ordinal holds   BagOrder b1 linearly_orders  Bags b1
 
:: deftheorem Def17   defines NatMinor POLYNOM1:def 17 : 
theorem Th65: :: POLYNOM1:65
theorem Th66: :: POLYNOM1:66
theorem Th67: :: POLYNOM1:67
:: deftheorem Def18   defines divisors POLYNOM1:def 18 : 
theorem Th68: :: POLYNOM1:68
theorem Th69: :: POLYNOM1:69
theorem Th70: :: POLYNOM1:70
theorem Th71: :: POLYNOM1:71
:: deftheorem Def19   defines decomp POLYNOM1:def 19 : 
theorem Th72: :: POLYNOM1:72
theorem Th73: :: POLYNOM1:73
theorem Th74: :: POLYNOM1:74
theorem Th75: :: POLYNOM1:75
theorem Th76: :: POLYNOM1:76
theorem Th77: :: POLYNOM1:77
theorem Th78: :: POLYNOM1:78
:: deftheorem Def20  POLYNOM1:def 20 : 
canceled; 
:: deftheorem Def21   defines + POLYNOM1:def 21 : 
for 
b1 being   
set  for 
b2 being non 
empty  LoopStr  for 
b3, 
b4, 
b5 being  
Series of 
b1,
b2 holds 
 ( 
b5 = b3 + b4 iff for 
b6 being  
bag of 
b1 holds  
b5 . b6 = (b3 . b6) + (b4 . b6) );
theorem Th79: :: POLYNOM1:79
theorem Th80: :: POLYNOM1:80
:: deftheorem Def22   defines - POLYNOM1:def 22 : 
:: deftheorem Def23   defines - POLYNOM1:def 23 : 
:: deftheorem Def24   defines 0_ POLYNOM1:def 24 : 
theorem Th81: :: POLYNOM1:81
theorem Th82: :: POLYNOM1:82
:: deftheorem Def25   defines 1_ POLYNOM1:def 25 : 
theorem Th83: :: POLYNOM1:83
theorem Th84: :: POLYNOM1:84
definition
let c1 be   
Ordinal;
let c2 be  non 
empty add-associative right_zeroed right_complementable  doubleLoopStr ;
let c3, 
c4 be   
Series of 
c1,
c2;
func c3 *' c4 ->   Series of 
a1,
a2 means :
Def26: 
:: POLYNOM1:def 26
for 
b1 being  
bag of 
a1 ex 
b2 being   
FinSequence of the 
carrier of 
a2 st 
( 
a5 . b1 =  Sum b2 &  
len b2 =  len (decomp b1) & ( for 
b3 being  
Nat  st 
b3 in  dom b2 holds 
ex 
b4, 
b5 being  
bag of 
a1 st 
( 
(decomp b1) /. b3 = <*b4,b5*> & 
b2 /. b3 = (a3 . b4) * (a4 . b5) ) ) );
existence 
ex b1 being  Series of c1,c2 st 
for b2 being  bag of c1 ex b3 being   FinSequence of the carrier of c2 st 
( b1 . b2 =  Sum b3 &  len b3 =  len (decomp b2) & ( for b4 being  Nat  st b4 in  dom b3 holds 
ex b5, b6 being  bag of c1 st 
( (decomp b2) /. b4 = <*b5,b6*> & b3 /. b4 = (c3 . b5) * (c4 . b6) ) ) )
 
uniqueness 
for b1, b2 being  Series of c1,c2  st ( for b3 being  bag of c1 ex b4 being   FinSequence of the carrier of c2 st 
( b1 . b3 =  Sum b4 &  len b4 =  len (decomp b3) & ( for b5 being  Nat  st b5 in  dom b4 holds 
ex b6, b7 being  bag of c1 st 
( (decomp b3) /. b5 = <*b6,b7*> & b4 /. b5 = (c3 . b6) * (c4 . b7) ) ) ) ) & ( for b3 being  bag of c1 ex b4 being   FinSequence of the carrier of c2 st 
( b2 . b3 =  Sum b4 &  len b4 =  len (decomp b3) & ( for b5 being  Nat  st b5 in  dom b4 holds 
ex b6, b7 being  bag of c1 st 
( (decomp b3) /. b5 = <*b6,b7*> & b4 /. b5 = (c3 . b6) * (c4 . b7) ) ) ) ) holds 
b1 = b2
 
 
end;
 
:: deftheorem Def26   defines *' POLYNOM1:def 26 : 
theorem Th85: :: POLYNOM1:85
theorem Th86: :: POLYNOM1:86
theorem Th87: :: POLYNOM1:87
theorem Th88: :: POLYNOM1:88
theorem Th89: :: POLYNOM1:89
definition
let c1 be   
Ordinal;
let c2 be  non 
empty add-associative right_zeroed right_complementable unital distributive non 
trivial  doubleLoopStr ;
func  Polynom-Ring c1,
c2 ->  non 
empty strict  doubleLoopStr  means :
Def27: 
:: POLYNOM1:def 27
( ( for 
b1 being   
set  holds 
 ( 
b1 in the 
carrier of 
a3 iff 
b1 is   
Polynomial of 
a1,
a2 ) ) & ( for 
b1, 
b2 being  
Element of 
a3 for 
b3, 
b4 being  
Polynomial of 
a1,
a2  st 
b1 = b3 & 
b2 = b4 holds 
b1 + b2 = b3 + b4 ) & ( for 
b1, 
b2 being  
Element of 
a3 for 
b3, 
b4 being  
Polynomial of 
a1,
a2  st 
b1 = b3 & 
b2 = b4 holds 
b1 * b2 = b3 *' b4 ) &  
0. a3 =  0_ a1,
a2 &  
1_ a3 =  1_ a1,
a2 );
existence 
ex b1 being non empty strict  doubleLoopStr  st 
( ( for b2 being   set  holds 
 ( b2 in the carrier of b1 iff b2 is   Polynomial of c1,c2 ) ) & ( for b2, b3 being  Element of b1
 for b4, b5 being  Polynomial of c1,c2  st b2 = b4 & b3 = b5 holds 
b2 + b3 = b4 + b5 ) & ( for b2, b3 being  Element of b1
 for b4, b5 being  Polynomial of c1,c2  st b2 = b4 & b3 = b5 holds 
b2 * b3 = b4 *' b5 ) &  0. b1 =  0_ c1,c2 &  1_ b1 =  1_ c1,c2 )
 
uniqueness 
for b1, b2 being non empty strict  doubleLoopStr   st ( for b3 being   set  holds 
 ( b3 in the carrier of b1 iff b3 is   Polynomial of c1,c2 ) ) & ( for b3, b4 being  Element of b1
 for b5, b6 being  Polynomial of c1,c2  st b3 = b5 & b4 = b6 holds 
b3 + b4 = b5 + b6 ) & ( for b3, b4 being  Element of b1
 for b5, b6 being  Polynomial of c1,c2  st b3 = b5 & b4 = b6 holds 
b3 * b4 = b5 *' b6 ) &  0. b1 =  0_ c1,c2 &  1_ b1 =  1_ c1,c2 & ( for b3 being   set  holds 
 ( b3 in the carrier of b2 iff b3 is   Polynomial of c1,c2 ) ) & ( for b3, b4 being  Element of b2
 for b5, b6 being  Polynomial of c1,c2  st b3 = b5 & b4 = b6 holds 
b3 + b4 = b5 + b6 ) & ( for b3, b4 being  Element of b2
 for b5, b6 being  Polynomial of c1,c2  st b3 = b5 & b4 = b6 holds 
b3 * b4 = b5 *' b6 ) &  0. b2 =  0_ c1,c2 &  1_ b2 =  1_ c1,c2 holds 
b1 = b2
 
 
end;
 
:: deftheorem Def27   defines Polynom-Ring POLYNOM1:def 27 : 
for 
b1 being  
Ordinal for 
b2 being non 
empty add-associative right_zeroed right_complementable unital distributive non 
trivial  doubleLoopStr  for 
b3 being non 
empty strict  doubleLoopStr  holds 
 ( 
b3 =  Polynom-Ring b1,
b2 iff ( ( for 
b4 being   
set  holds 
 ( 
b4 in the 
carrier of 
b3 iff 
b4 is   
Polynomial of 
b1,
b2 ) ) & ( for 
b4, 
b5 being  
Element of 
b3 for 
b6, 
b7 being  
Polynomial of 
b1,
b2  st 
b4 = b6 & 
b5 = b7 holds 
b4 + b5 = b6 + b7 ) & ( for 
b4, 
b5 being  
Element of 
b3 for 
b6, 
b7 being  
Polynomial of 
b1,
b2  st 
b4 = b6 & 
b5 = b7 holds 
b4 * b5 = b6 *' b7 ) &  
0. b3 =  0_ b1,
b2 &  
1_ b3 =  1_ b1,
b2 ) );
E104: 
now 
let c1 be   
Ordinal;
let c2 be  non 
empty Abelian add-associative right_zeroed right_complementable unital associative distributive non 
trivial  doubleLoopStr ;
set c3 =  
Polynom-Ring c1,
c2;
let c4, 
c5 be   
Element of 
(Polynom-Ring c1,c2);
assume E105: 
c5 =  1_ (Polynom-Ring c1,c2)
 ;
reconsider c6 = 
c4 as   
Polynomial of 
c1,
c2 by Def27;
E106: 
 
1_ (Polynom-Ring c1,c2) =  1_ c1,
c2
 by Def27;
hence c4 * c5 = 
c6 *' (1_ c1,c2)
by E105, Def27
.= 
c4
by Th88
;
thus c5 * c4 = 
(1_ c1,c2) *' c6
by E106, E105, Def27
.= 
c4
by Th89
;
 
end;
 
theorem Th90: :: POLYNOM1:90
theorem Th91: :: POLYNOM1:91