
theorem Th17:
  for n being Element of NAT, T being connected admissible
  TermOrder of n, L being add-associative right_complementable right_zeroed
commutative associative well-unital distributive Abelian almost_left_invertible
non degenerated non empty doubleLoopStr, P being Subset of Polynom-Ring(n,L)
holds (for p1,p2 being Polynomial of n,L st p1 <> p2 & p1 in P & p2 in P for m1
,m2 being Monomial of n,L st HM(m1 *'p1,T) = HM(m2 *'p2,T) holds PolyRedRel(P,T
  ) reduces m1 *' p1 - m2 *' p2, 0_(n,L)) implies P is_Groebner_basis_wrt T
proof
  let n be Element of NAT, T be admissible connected TermOrder of n, L be
  add-associative right_complementable right_zeroed commutative associative
  well-unital distributive Abelian almost_left_invertible non degenerated non
  empty doubleLoopStr, P be Subset of Polynom-Ring(n,L);
  assume
A1: for p1,p2 being Polynomial of n,L st p1 <> p2 & p1 in P & p2 in P
  for m1,m2 being Monomial of n,L st HM(m1 *'p1,T) = HM(m2 *'p2,T) holds
  PolyRedRel(P,T) reduces m1 *' p1 - m2 *' p2, 0_(n,L);
  set R = PolyRedRel(P,T);
A2: 0_(n,L) = 0.Polynom-Ring(n,L) by POLYNOM1:def 11;
  now
    let a,b,c being object;
    assume that
A3: [a,b] in R and
A4: [a,c] in R;
    consider f,f1 being object such that
A5: f in NonZero Polynom-Ring(n,L) and
A6: f1 in the carrier of Polynom-Ring(n,L) and
A7: [a,b] = [f,f1] by A3,ZFMISC_1:def 2;
A8: not f in {0_(n,L)} by A2,A5,XBOOLE_0:def 5;
    reconsider f as Polynomial of n,L by A5,POLYNOM1:def 11;
    f <> 0_(n,L) by A8,TARSKI:def 1;
    then reconsider f as non-zero Polynomial of n,L by POLYNOM7:def 1;
    reconsider f1 as Polynomial of n,L by A6,POLYNOM1:def 11;
    f reduces_to f1,P,T by A3,A7,POLYRED:def 13;
    then consider g1 being Polynomial of n,L such that
A9: g1 in P and
A10: f reduces_to f1,g1,T by POLYRED:def 7;
    ex b1 being bag of n st f reduces_to f1,g1,b1,T by A10,POLYRED:def 6;
    then
A11: g1 <> 0_(n,L) by POLYRED:def 5;
    consider f9,f2 being object such that
    f9 in NonZero Polynom-Ring(n,L) and
A12: f2 in the carrier of Polynom-Ring(n,L) and
A13: [a,c] = [f9,f2] by A4,ZFMISC_1:def 2;
    reconsider f2 as Polynomial of n,L by A12,POLYNOM1:def 11;
A14: f2 = c by A13,XTUPLE_0:1;
    reconsider g1 as non-zero Polynomial of n,L by A11,POLYNOM7:def 1;
    consider m1 being Monomial of n,L such that
A15: f1 = f - m1 *' g1 and
A16: not HT(m1*'g1,T) in Support f1 and
    HT(m1*'g1,T) <= HT(f,T),T by A10,GROEB_1:2;
A17: f9 = a by A13,XTUPLE_0:1;
A18: f9 = a by A13,XTUPLE_0:1
      .= f by A7,XTUPLE_0:1;
    then f reduces_to f2,P,T by A4,A13,POLYRED:def 13;
    then consider g2 being Polynomial of n,L such that
A19: g2 in P and
A20: f reduces_to f2,g2,T by POLYRED:def 7;
    ex b2 being bag of n st f reduces_to f2,g2,b2,T by A20,POLYRED:def 6;
    then
A21: g2 <> 0_(n,L) by POLYRED:def 5;
    then reconsider g2 as non-zero Polynomial of n,L by POLYNOM7:def 1;
    consider m2 being Monomial of n,L such that
A22: f2 = f - m2 *' g2 and
A23: not HT(m2*'g2,T) in Support f2 and
    HT(m2*'g2,T) <= HT(f,T),T by A20,GROEB_1:2;
    set mg1 = m1 *' g1, mg2 = m2 *' g2;
A24: f1 = b by A7,XTUPLE_0:1;
    now
      per cases;
      case
        m1 = 0_(n,L);
        then f1 = f - 0_(n,L) by A15,POLYRED:5
          .= f by POLYRED:4;
        then
A25:    R reduces b,c by A4,A18,A24,A17,REWRITE1:15;
        R reduces c,c by REWRITE1:12;
        hence b,c are_convergent_wrt R by A25,REWRITE1:def 7;
      end;
      case
        m2 = 0_(n,L);
        then f2 = f - 0_(n,L) by A22,POLYRED:5
          .= f by POLYRED:4;
        then
A26:    R reduces c,b by A3,A18,A14,A17,REWRITE1:15;
        R reduces b,b by REWRITE1:12;
        hence b,c are_convergent_wrt R by A26,REWRITE1:def 7;
      end;
      case
        m1 <> 0_(n,L) & m2 <> 0_(n,L);
        then reconsider m1,m2 as non-zero Monomial of n,L by POLYNOM7:def 1;
        HT(m1,T) + HT(g1,T) in Support mg1 by TERMORD:29;
        then
A27:    mg1 <> 0_(n,L) by POLYNOM7:1;
        HT(m2,T) + HT(g2,T) in Support mg2 by TERMORD:29;
        then
A28:    mg2 <> 0_(n,L) by POLYNOM7:1;
A29:    HC(g2,T) <> 0.L;
A30:     --(m1 *' g1) =  m1 *' g1 by POLYNOM1:19;
A31:    f2 - f1 = (f + -(m2 *' g2)) - (f - m1 *' g1) by A15,A22,POLYNOM1:def 7
          .= (f + -(m2 *' g2)) - (f + -(m1 *' g1)) by POLYNOM1:def 7
          .= (f + -(m2 *' g2)) + -(f + -(m1 *' g1)) by POLYNOM1:def 7
          .= (f + -(m2 *' g2)) + (-f + --(m1 *' g1)) by POLYRED:1
          .= f + (-(m2 *' g2) + (-f + (m1 *' g1))) by A30,POLYNOM1:21
          .= f + (-f + (-(m2 *' g2) + (m1 *' g1))) by POLYNOM1:21
          .= (f + -f) + (-(m2 *' g2) + (m1 *' g1)) by POLYNOM1:21
          .= 0_(n,L) + (-(m2 *' g2) + (m1 *' g1)) by POLYRED:3
          .= (m1 *' g1) + -(m2 *' g2) by POLYRED:2
          .= mg1 - mg2 by POLYNOM1:def 7;
A32:    HC(g1,T) <> 0.L;
A33:     --mg1 = mg1 by POLYNOM1:19;
        PolyRedRel(P,T) reduces f2-f1,0_(n,L)
        proof
          now
            per cases;
            case
              mg1 - mg2 = 0_(n,L);
              hence thesis by A31,REWRITE1:12;
            end;
            case
A34:          mg1 - mg2 <> 0_(n,L);
              now
                per cases;
                case
                  g1 = g2;
                  then f2 - f1 = m1 *' g1 + -(m2 *' g1) by A31,POLYNOM1:def 7
                    .= g1 *' m1 + (-m2) *' g1 by POLYRED:6
                    .= (m1 + -m2) *' g1 by POLYNOM1:26;
                  hence thesis by A9,POLYRED:45;
                end;
                case
A35:              g1 <> g2;
                  now
                    per cases;
                    case
A36:                  HT(mg1,T) <> HT(mg2,T);
                      now
                        per cases;
                        case
                          HT(mg2,T) < HT(mg1,T),T;
                          then not HT(mg1,T) <= HT(mg2,T),T by TERMORD:5;
                          then not(HT(mg1,T)) in Support(mg2) by TERMORD:def 6;
                          then
A37:                      mg2.(HT(mg1,T)) = 0.L by POLYNOM1:def 4;
A38:                      (mg1-mg2).(HT(mg1,T)) = (mg1+-mg2).(HT(mg1,T))
                          by POLYNOM1:def 7
                            .= mg1.(HT(mg1,T))+(-mg2).(HT(mg1,T)) by
POLYNOM1:15
                            .= mg1.(HT(mg1,T))+-(mg2).(HT(mg1,T)) by
POLYNOM1:17
                            .= mg1.(HT(mg1,T))+0.L by A37,RLVECT_1:12
                            .= mg1.(HT(mg1,T)) by RLVECT_1:def 4
                            .= HC(mg1,T) by TERMORD:def 7;
                          then (mg1-mg2).(HT(mg1,T)) <> 0.L by A27,TERMORD:17;
                          then
A39:                      HT(mg1,T) in Support( mg1 - mg2) by POLYNOM1:def 4;
A40:                      HT(m1,T) + HT(g1,T) = HT(mg1,T) by TERMORD:31;
                          (mg1 - mg2) - ((mg1-mg2).HT(mg1,T)/HC(g1,T)) *
(HT(m1,T) *' g1) = (mg1 - mg2) - ((HC(m1,T)*HC(g1,T))/HC(g1,T)) * (HT(m1,T) *'
                          g1) by A38,TERMORD:32
                            .= (mg1 - mg2) - ((HC(m1,T)*HC(g1,T))*(HC(g1,T)"
                          )) * (HT(m1,T) *' g1)
                            .= (mg1 - mg2) - (HC(m1,T)*(HC(g1,T)*(HC(g1,T)")
                          )) * (HT(m1,T) *' g1) by GROUP_1:def 3
                            .= (mg1 - mg2) - (HC(m1,T)*1.L) * (HT(m1,T) *'
                          g1) by A32,VECTSP_1:def 10
                            .= (mg1 - mg2) - HC(m1,T) * (HT(m1,T) *' g1)
                            .= (mg1 - mg2) - Monom(HC(m1,T),HT(m1,T)) *' g1
                          by POLYRED:22
                            .= (mg1 - mg2) - Monom(coefficient(m1),HT(m1,T))
                          *'g1 by TERMORD:23
                            .= (mg1 - mg2) - Monom(coefficient(m1),term(m1))
                          *'g1 by TERMORD:23
                            .= (mg1 - mg2) - mg1 by POLYNOM7:11
                            .= (mg1+-mg2)-mg1 by POLYNOM1:def 7
                            .= (mg1+-mg2)+-mg1 by POLYNOM1:def 7
                            .= (mg1+-mg1)+-mg2 by POLYNOM1:21
                            .= 0_(n,L)+-mg2 by POLYRED:3
                            .= -mg2 by POLYRED:2;
                          then mg1-mg2 reduces_to -mg2,g1,HT(mg1,T),T by A11
,A34,A39,A40,POLYRED:def 5;
                          then mg1-mg2 reduces_to -mg2,g1,T by POLYRED:def 6;
                          then mg1-mg2 reduces_to -mg2,P,T by A9,POLYRED:def 7;
                          then [mg1-mg2,-mg2] in R by POLYRED:def 13;
                          then
A41:                      R reduces mg1-mg2,-mg2 by REWRITE1:15;
                          R reduces (-m2)*'g2,0_(n,L) by A19,POLYRED:45;
                          then R reduces -mg2,0_(n,L) by POLYRED:6;
                          hence thesis by A31,A41,REWRITE1:16;
                        end;
                        case
                          not HT(mg2,T) < HT(mg1,T),T;
                          then HT(mg1,T) <= HT(mg2,T),T by TERMORD:5;
                          then HT(mg1,T) < HT(mg2,T),T by A36,TERMORD:def 3;
                          then not HT(mg2,T) <= HT(mg1,T),T by TERMORD:5;
                          then not(HT(mg2,T)) in Support(mg1) by TERMORD:def 6;
                          then
A42:                      mg1.(HT(mg2,T)) = 0.L by POLYNOM1:def 4;
A43:                      (mg2-mg1).(HT(mg2,T)) = (mg2+-mg1).(HT(mg2,T))
                          by POLYNOM1:def 7
                            .= mg2.(HT(mg2,T))+(-mg1).(HT(mg2,T)) by
POLYNOM1:15
                            .= mg2.(HT(mg2,T))+-(mg1).(HT(mg2,T)) by
POLYNOM1:17
                            .= mg2.(HT(mg2,T))+0.L by A42,RLVECT_1:12
                            .= mg2.(HT(mg2,T)) by RLVECT_1:def 4
                            .= HC(mg2,T) by TERMORD:def 7;
                          then (mg2-mg1).(HT(mg2,T)) <> 0.L by A28,TERMORD:17;
                          then
A44:                      HT(mg2,T) in Support( mg2 - mg1) by POLYNOM1:def 4;
                          reconsider x = -0_(n,L) as Element of Polynom-Ring(n
                          ,L) by POLYNOM1:def 11;
A45:                      HT(m2,T) + HT(g2,T) = HT(mg2,T) by TERMORD:31;
                          reconsider x as Element of Polynom-Ring(n,L);
                          0.Polynom-Ring(n,L) = 0_(n,L) by POLYNOM1:def 11;
                          then
A46:                      x + (0.Polynom-Ring(n, L)) = -0_(n,L) + 0_(n,L)
                          by POLYNOM1:def 11
                            .= 0_(n,L) by POLYRED:3
                            .= 0.(Polynom-Ring(n,L)) by POLYNOM1:def 11;
A47:                      now
                            assume mg2 - mg1 = 0_(n,L);
                            then -(mg2 + -mg1) = - 0_(n,L) by POLYNOM1:def 7;
                            then -mg2 + -(-mg1) = -0_(n,L) by POLYRED:1;
                            then
                            mg1 + -mg2 = -(0.(Polynom-Ring(n,L))) by A33,A46,
RLVECT_1:6
                              .= 0.(Polynom-Ring(n,L)) by RLVECT_1:12
                              .= 0_(n,L) by POLYNOM1:def 11;
                            hence contradiction by A34,POLYNOM1:def 7;
                          end;
                          (mg2 - mg1) - ((mg2-mg1).HT(mg2,T)/HC(g2,T)) *
(HT(m2,T) *' g2) = (mg2 - mg1) - ((HC(m2,T)*HC(g2,T))/HC(g2,T)) * (HT(m2,T) *'
                          g2) by A43,TERMORD:32
                            .= (mg2 - mg1) - ((HC(m2,T)*HC(g2,T))*(HC(g2,T)"
                          )) * (HT(m2,T) *' g2)
                            .= (mg2 - mg1) - (HC(m2,T)*(HC(g2,T)*(HC(g2,T)")
                          )) * (HT(m2,T) *' g2) by GROUP_1:def 3
                            .= (mg2 - mg1) - (HC(m2,T)*1.L) * (HT(m2,T) *'
                          g2) by A29,VECTSP_1:def 10
                            .= (mg2 - mg1) - HC(m2,T) * (HT(m2,T) *' g2)
                            .= (mg2 - mg1) - Monom(HC(m2,T),HT(m2,T)) *' g2
                          by POLYRED:22
                            .= (mg2 - mg1) - Monom(coefficient(m2),HT(m2,T))
                          *'g2 by TERMORD:23
                            .= (mg2 - mg1) - Monom(coefficient(m2),term(m2))
                          *'g2 by TERMORD:23
                            .= (mg2 - mg1) - mg2 by POLYNOM7:11
                            .= (mg2+-mg1)-mg2 by POLYNOM1:def 7
                            .= (mg2+-mg1)+-mg2 by POLYNOM1:def 7
                            .= (mg2+-mg2)+-mg1 by POLYNOM1:21
                            .= 0_(n,L)+-mg1 by POLYRED:3
                            .= -mg1 by POLYRED:2;
                          then mg2-mg1 reduces_to -mg1,g2,HT(mg2,T),T by A21
,A44,A45,A47,POLYRED:def 5;
                          then mg2-mg1 reduces_to -mg1,g2,T by POLYRED:def 6;
                          then mg2-mg1 reduces_to -mg1,P,T by A19,POLYRED:def 7
;
                          then [mg2-mg1,-mg1] in R by POLYRED:def 13;
                          then
A48:                      R reduces mg2-mg1,-mg1 by REWRITE1:15;
A49:                      -(1_(n,L)) = -((1.L) |(n,L)) by POLYNOM7:20
                            .= (-1.L) |(n,L) by Th16;
                          R reduces (-m1)*'g1,0_(n,L) by A9,POLYRED:45;
                          then R reduces -mg1,0_(n,L) by POLYRED:6;
                          then R reduces mg2-mg1,0_(n,L) by A48,REWRITE1:16;
                          then
A50:                      R reduces (-1_(n,L))*' (mg2-mg1),(-1_(n,L))*'
                          0_(n,L) by A49,POLYRED:47;
                          (-1_(n,L))*'(mg2-mg1) = (-1_(n,L))*'(mg2+-mg1)
                          by POLYNOM1:def 7
                            .= (-1_(n,L))*'mg2+(-1_(n,L))*'(-mg1) by
POLYNOM1:26
                            .= -(1_(n,L)*'mg2)+(-1_(n,L))*'(-mg1) by POLYRED:6
                            .= 1_(n,L)*'(-mg2)+(-1_(n,L))*'(-mg1) by POLYRED:6
                            .= 1_(n,L)*'(-mg2)+(-(1_(n,L)*'(-mg1))) by
POLYRED:6
                            .= 1_(n,L)*'(-mg2)+1_(n,L)*'(--mg1) by POLYRED:6
                            .= (-mg2)+1_(n,L)*'mg1 by A33,POLYNOM1:30
                            .= mg1 + -mg2 by POLYNOM1:30
                            .= mg1 - mg2 by POLYNOM1:def 7;
                          hence thesis by A31,A50,POLYNOM1:28;
                        end;
                      end;
                      hence thesis;
                    end;
                    case
A51:                  HT(mg1,T) = HT(mg2,T);
                      (f-mg2).HT(mg2,T) = 0.L by A22,A23,POLYNOM1:def 4;
                      then (f+-mg2).HT(mg2,T) = 0.L by POLYNOM1:def 7;
                      then f.HT(mg2,T) + (-mg2).HT(mg2,T) = 0.L by POLYNOM1:15;
                      then f.HT(mg2,T) + -(mg2.HT(mg2,T)) = 0.L by POLYNOM1:17;
                      then
A52:                  f.HT(mg2,T) = --(mg2.HT(mg2,T) ) by RLVECT_1:6;
                      (f-mg1).HT(mg1,T) = 0.L by A15,A16,POLYNOM1:def 4;
                      then (f+-mg1).HT(mg1,T) = 0.L by POLYNOM1:def 7;
                      then f.HT(mg1,T) + (-mg1).HT(mg1,T) = 0.L by POLYNOM1:15;
                      then f.HT(mg1,T) + -(mg1.HT(mg1,T)) = 0.L by POLYNOM1:17;
                      then
A53:                  f.HT(mg1,T) = --(mg1.HT(mg1,T) ) by RLVECT_1:6;
                      HC(mg1,T) = mg1.HT(mg1,T) by TERMORD:def 7
                        .= f.(HT(mg1,T)) by A53,RLVECT_1:17
                        .= mg2.HT(mg2,T) by A51,A52,RLVECT_1:17
                        .= HC(mg2,T) by TERMORD:def 7;
                      then HM(mg1,T) = Monom(HC(mg2,T),HT(mg2,T)) by A51,
TERMORD:def 8
                        .= HM(mg2,T) by TERMORD:def 8;
                      hence thesis by A1,A9,A19,A31,A35;
                    end;
                  end;
                  hence thesis;
                end;
              end;
              hence thesis;
            end;
          end;
          hence thesis;
        end;
        hence b,c are_convergent_wrt R by A24,A14,POLYRED:50,REWRITE1:40;
      end;
    end;
    hence b,c are_convergent_wrt R;
  end;
  then PolyRedRel(P,T) is locally-confluent by REWRITE1:def 24;
  hence thesis by GROEB_1:def 3;
end;
