Article POLYNOM4, MML version 4.99.1005

:: POLYNOM4:th 3
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Element of NAT
      st 1 <= b3 & b3 <= len b2
   holds b2 = ((b2 | (b3 -' 1)) ^ <*b2 . b3*>) ^ (b2 /^ b3);

:: POLYNOM4:condreg 1
registration
  cluster non empty right_add-cancelable almost_left_invertible left_zeroed associative commutative right-distributive well-unital -> domRing-like (doubleLoopStr);
end;

:: POLYNOM4:exreg 1
registration
  cluster non empty non degenerated non trivial right_complementable almost_left_invertible strict Abelian add-associative right_zeroed unital associative commutative distributive domRing-like doubleLoopStr;
end;

:: POLYNOM4:th 5
theorem
for b1 being non empty right_complementable add-associative right_zeroed left-distributive doubleLoopStr
for b2 being Function-like quasi_total Relation of NAT,the carrier of b1 holds
   (0_. b1) *' b2 = 0_. b1;

:: POLYNOM4:th 6
theorem
for b1 being non empty ZeroStr holds
   len 0_. b1 = 0;

:: POLYNOM4:th 7
theorem
for b1 being non empty non degenerated multLoopStr_0 holds
   len 1_. b1 = 1;

:: POLYNOM4:th 8
theorem
for b1 being non empty ZeroStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
      st len b2 = 0
   holds b2 = 0_. b1;

:: POLYNOM4:th 9
theorem
for b1 being non empty right_zeroed addLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of NAT
      st len b2 <= b4 & len b3 <= b4
   holds len (b2 + b3) <= b4;

:: POLYNOM4:th 10
theorem
for b1 being non empty right_complementable add-associative right_zeroed addLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
      st len b2 <> len b3
   holds len (b2 + b3) = max(len b2,len b3);

:: POLYNOM4:th 11
theorem
for b1 being non empty right_complementable add-associative right_zeroed addLoopStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1 holds
   len - b2 = len b2;

:: POLYNOM4:th 12
theorem
for b1 being non empty right_complementable add-associative right_zeroed addLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of NAT
      st len b2 <= b4 & len b3 <= b4
   holds len (b2 - b3) <= b4;

:: POLYNOM4:th 13
theorem
for b1 being non empty right_complementable add-associative right_zeroed associative commutative distributive left_unital doubleLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
      st (b2 . ((len b2) -' 1)) * (b3 . ((len b3) -' 1)) <> 0. b1
   holds len (b2 *' b3) = ((len b2) + len b3) - 1;

:: POLYNOM4:funcnot 1 => POLYNOM4:func 1
definition
  let a1 be non empty ZeroStr;
  let a2 be Function-like quasi_total finite-Support Relation of NAT,the carrier of a1;
  func Leading-Monomial A2 -> Function-like quasi_total Relation of NAT,the carrier of a1 means
    it . ((len a2) -' 1) = a2 . ((len a2) -' 1) &
     (for b1 being Element of NAT
           st b1 <> (len a2) -' 1
        holds it . b1 = 0. a1);
end;

:: POLYNOM4:def 1
theorem
for b1 being non empty ZeroStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b3 being Function-like quasi_total Relation of NAT,the carrier of b1 holds
      b3 = Leading-Monomial b2
   iff
      b3 . ((len b2) -' 1) = b2 . ((len b2) -' 1) &
       (for b4 being Element of NAT
             st b4 <> (len b2) -' 1
          holds b3 . b4 = 0. b1);

:: POLYNOM4:th 14
theorem
for b1 being non empty ZeroStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1 holds
   Leading-Monomial b2 = (0_. b1) +*((len b2) -' 1,b2 . ((len b2) -' 1));

:: POLYNOM4:funcreg 1
registration
  let a1 be non empty ZeroStr;
  let a2 be Function-like quasi_total finite-Support Relation of NAT,the carrier of a1;
  cluster Leading-Monomial a2 -> Function-like quasi_total finite-Support;
end;

:: POLYNOM4:th 15
theorem
for b1 being non empty ZeroStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
      st len b2 = 0
   holds Leading-Monomial b2 = 0_. b1;

:: POLYNOM4:th 16
theorem
for b1 being non empty ZeroStr holds
   Leading-Monomial 0_. b1 = 0_. b1;

:: POLYNOM4:th 17
theorem
for b1 being non empty non degenerated multLoopStr_0 holds
   Leading-Monomial 1_. b1 = 1_. b1;

:: POLYNOM4:th 18
theorem
for b1 being non empty ZeroStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1 holds
   len Leading-Monomial b2 = len b2;

:: POLYNOM4:th 19
theorem
for b1 being non empty right_complementable add-associative right_zeroed addLoopStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
      st len b2 <> 0
   holds ex b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1 st
      len b3 < len b2 &
       b2 = b3 + Leading-Monomial b2 &
       (for b4 being Element of NAT
             st b4 < (len b2) - 1
          holds b3 . b4 = b2 . b4);

:: POLYNOM4:funcnot 2 => POLYNOM4:func 2
definition
  let a1 be non empty unital doubleLoopStr;
  let a2 be Function-like quasi_total finite-Support Relation of NAT,the carrier of a1;
  let a3 be Element of the carrier of a1;
  func eval(A2,A3) -> Element of the carrier of a1 means
    ex b1 being FinSequence of the carrier of a1 st
       it = Sum b1 &
        len b1 = len a2 &
        (for b2 being Element of NAT
              st b2 in dom b1
           holds b1 . b2 = (a2 . (b2 -' 1)) * ((power a1) .(a3,b2 -' 1)));
end;

:: POLYNOM4:def 2
theorem
for b1 being non empty unital doubleLoopStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b3, b4 being Element of the carrier of b1 holds
   b4 = eval(b2,b3)
iff
   ex b5 being FinSequence of the carrier of b1 st
      b4 = Sum b5 &
       len b5 = len b2 &
       (for b6 being Element of NAT
             st b6 in dom b5
          holds b5 . b6 = (b2 . (b6 -' 1)) * ((power b1) .(b3,b6 -' 1)));

:: POLYNOM4:th 20
theorem
for b1 being non empty unital doubleLoopStr
for b2 being Element of the carrier of b1 holds
   eval(0_. b1,b2) = 0. b1;

:: POLYNOM4:th 21
theorem
for b1 being non empty non degenerated right_complementable add-associative right_zeroed associative well-unital doubleLoopStr
for b2 being Element of the carrier of b1 holds
   eval(1_. b1,b2) = 1. b1;

:: POLYNOM4:th 22
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed unital left-distributive doubleLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of the carrier of b1 holds
   eval(b2 + b3,b4) = (eval(b2,b4)) + eval(b3,b4);

:: POLYNOM4:th 23
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed unital distributive doubleLoopStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b3 being Element of the carrier of b1 holds
   eval(- b2,b3) = - eval(b2,b3);

:: POLYNOM4:th 24
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed unital distributive doubleLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of the carrier of b1 holds
   eval(b2 - b3,b4) = (eval(b2,b4)) - eval(b3,b4);

:: POLYNOM4:th 25
theorem
for b1 being non empty right_complementable add-associative right_zeroed unital distributive doubleLoopStr
for b2 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b3 being Element of the carrier of b1 holds
   eval(Leading-Monomial b2,b3) = (b2 . ((len b2) -' 1)) * ((power b1) .(b3,(len b2) -' 1));

:: POLYNOM4:th 26
theorem
for b1 being non empty non trivial right_complementable Abelian add-associative right_zeroed associative commutative distributive left_unital doubleLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of the carrier of b1 holds
   eval((Leading-Monomial b2) *' b3,b4) = (eval(Leading-Monomial b2,b4)) * eval(b3,b4);

:: POLYNOM4:th 27
theorem
for b1 being non empty non trivial right_complementable Abelian add-associative right_zeroed associative commutative distributive left_unital doubleLoopStr
for b2, b3 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1
for b4 being Element of the carrier of b1 holds
   eval(b2 *' b3,b4) = (eval(b2,b4)) * eval(b3,b4);

:: POLYNOM4:funcnot 3 => POLYNOM4:func 3
definition
  let a1 be non empty right_complementable add-associative right_zeroed unital distributive doubleLoopStr;
  let a2 be Element of the carrier of a1;
  func Polynom-Evaluation(A1,A2) -> Function-like quasi_total Relation of the carrier of Polynom-Ring a1,the carrier of a1 means
    for b1 being Function-like quasi_total finite-Support Relation of NAT,the carrier of a1 holds
       it . b1 = eval(b1,a2);
end;

:: POLYNOM4:def 3
theorem
for b1 being non empty right_complementable add-associative right_zeroed unital distributive doubleLoopStr
for b2 being Element of the carrier of b1
for b3 being Function-like quasi_total Relation of the carrier of Polynom-Ring b1,the carrier of b1 holds
      b3 = Polynom-Evaluation(b1,b2)
   iff
      for b4 being Function-like quasi_total finite-Support Relation of NAT,the carrier of b1 holds
         b3 . b4 = eval(b4,b2);

:: POLYNOM4:funcreg 2
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr;
  let a2 be Element of the carrier of a1;
  cluster Polynom-Evaluation(a1,a2) -> Function-like quasi_total unity-preserving;
end;

:: POLYNOM4:funcreg 3
registration
  let a1 be non empty right_complementable Abelian add-associative right_zeroed unital distributive doubleLoopStr;
  let a2 be Element of the carrier of a1;
  cluster Polynom-Evaluation(a1,a2) -> Function-like quasi_total additive;
end;

:: POLYNOM4:funcreg 4
registration
  let a1 be non empty non trivial right_complementable Abelian add-associative right_zeroed associative commutative distributive left_unital doubleLoopStr;
  let a2 be Element of the carrier of a1;
  cluster Polynom-Evaluation(a1,a2) -> Function-like quasi_total multiplicative;
end;

:: POLYNOM4:funcreg 5
registration
  let a1 be non empty non degenerated right_complementable Abelian add-associative right_zeroed associative commutative well-unital distributive doubleLoopStr;
  let a2 be Element of the carrier of a1;
  cluster Polynom-Evaluation(a1,a2) -> Function-like quasi_total RingHomomorphism;
end;