
theorem lemeval:
for F being non 2-characteristic Field
for a being non zero Element of F, b,c being Element of F
for w being Element of F st w^2 = b^2 - 4 '*' a * c
holds eval(<%c,b,a%>,(-b + w) * (2 '*' a)") = 0.F &
      eval(<%c,b,a%>,(-b - w) * (2 '*' a)") = 0.F
proof
let F be non 2-characteristic Field;
let a be non zero Element of F, b,c be Element of F;
let w be Element of F;
set r1 = (-b + w) * (2 '*' a)";
assume AS: w^2 = b^2 - 4 '*' a * c;
Char F <> 2 by RING_3:def 6; then
I: 2 '*' 1.F <> 0.F by REALALG2:24;
H: now assume 4 '*' a = 0.F;
   then 0.F = (2 * 2) '*' a
           .= 2 '*' (2 '*' (1.F * a)) by RING_3:65
           .= 2 '*' ((2 '*' 1.F) * a) by REALALG2:5
           .= 2 '*' (a * (2 '*' 1.F)) by GROUP_1:def 12
           .= (2 '*' a) * (2 '*' 1.F) by REALALG2:5;
   then 2 '*' a = 0.F by I,VECTSP_2:def 1;
   hence contradiction by ch2;
   end; then
L: 2 '*' a <> 0.F & 4 '*' a <> 0.F by ch2;
   (2 '*' a) * r1 = (2 '*' a) * ((2 '*' a)" * (-b + w)) by GROUP_1:def 12
                 .= ((2 '*' a) * (2 '*' a)") * (-b + w) by GROUP_1:def 3
                 .= ((2 '*' a)" * (2 '*' a)) * (-b + w) by GROUP_1:def 12
                 .= 1.F * (-b + w) by L,VECTSP_1:def 10; then
   b + 2 '*' a * r1 = (b + -b) + w by RLVECT_1:def 3
                   .= 0.F + w by RLVECT_1:5; then
   b^2 - 4 '*' a * c
       = (2'*'a*r1)^2 + 2'*'(2'*'a*r1)*b + b^2 by AS,REALALG2:7
      .= (2'*'a*r1)^2 + (2'*'(2'*'(a*r1)))*b + b^2 by REALALG2:5
      .= (2'*'a*r1)^2 + ((2*2)'*'(a*r1))*b + b^2 by RING_3:65
      .= (2'*'a*r1)^2 + 4'*'a*r1*b + b^2 by REALALG2:5; then
   (b^2 + -4 '*' a * c) - b^2
       = (2'*'a*r1)^2 + 4'*'a*r1*b + (b^2 - b^2) by RLVECT_1:def 3
      .= (2'*'a*r1)^2 + 4'*'a*r1*b + 0.F by RLVECT_1:15; then
   (2'*'a*r1)^2 + 4'*'a*r1*b
       = -4 '*' a * c + (b^2 + -b^2) by RLVECT_1:def 3
      .= - 4 '*' a * c + 0.F by RLVECT_1:5; then
   0.F = (2'*'a*r1)^2 + 4'*'a*r1*b + 4'*'a*c by RLVECT_1:5
      .= (2'*'a)^2 * r1^2 + 4'*'a*r1*b + 4'*'a*c by ch0
      .= ((2^2) '*' a^2) * r1^2 + 4'*'a*r1*b + 4'*'a*c by ch1
      .= ((2*2) '*' a^2) * r1^2 + 4'*'a*r1*b + 4'*'a*c by SQUARE_1:def 1
      .= (4 '*' (a * a)) * r1^2 + 4'*'a*r1*b + 4'*'a*c by O_RING_1:def 1
      .= ((4 '*' a) * a) * r1^2 + 4'*'a*r1*b + 4'*'a*c by REALALG2:5
      .= (4 '*' a) * (a * r1^2) + (4'*'a)*r1*b + (4'*'a)*c by GROUP_1:def 3
      .= ((4 '*' a) * (a * r1^2) + (4'*'a)*(r1*b)) + (4'*'a)*c by GROUP_1:def 3
      .= (4 '*' a) * (a * r1^2 + r1*b) + (4'*'a)*c by VECTSP_1:def 2
      .= (4 '*' a) * ((a * r1^2 + r1*b) + c) by VECTSP_1:def 2; then
E: 0.F = ((a * r1^2) + r1*b) + c by H,VECTSP_2:def 1
      .= a * r1^2 + b * r1  + c by GROUP_1:def 12;
thus eval(<%c,b,a%>,r1)
    = c + b * r1 + a * r1^2 by evalq
   .= 0.F by E,RLVECT_1:def 3;
set r1 = (-b - w) * (2 '*' a)";
J: (-w)^2 = (-w) * (-w) by O_RING_1:def 1
         .= w * w by VECTSP_1:10
         .= w^2 by O_RING_1:def 1;
   (2 '*' a) * r1 = (2 '*' a) * ((2 '*' a)" * (-b - w)) by GROUP_1:def 12
                 .= ((2 '*' a) * (2 '*' a)") * (-b - w) by GROUP_1:def 3
                 .= ((2 '*' a)" * (2 '*' a)) * (-b - w) by GROUP_1:def 12
                 .= 1.F * (-b - w) by L,VECTSP_1:def 10; then
   b + 2 '*' a * r1 = (b + -b) - w by RLVECT_1:def 3
                   .= 0.F - w by RLVECT_1:5; then
   b^2 - 4 '*' a * c
       = (2'*'a*r1)^2 + 2'*'(2'*'a*r1)*b + b^2 by J,AS,REALALG2:7
      .= (2'*'a*r1)^2 + (2'*'(2'*'(a*r1)))*b + b^2 by REALALG2:5
      .= (2'*'a*r1)^2 + ((2*2)'*'(a*r1))*b + b^2 by RING_3:65
      .= (2'*'a*r1)^2 + 4'*'a*r1*b + b^2 by REALALG2:5; then
   (b^2 + -4 '*' a * c) - b^2
       = (2'*'a*r1)^2 + 4'*'a*r1*b + (b^2 - b^2) by RLVECT_1:def 3
      .= (2'*'a*r1)^2 + 4'*'a*r1*b + 0.F by RLVECT_1:15; then
   (2'*'a*r1)^2 + 4'*'a*r1*b
       = -4 '*' a * c + (b^2 + -b^2) by RLVECT_1:def 3
      .= - 4 '*' a * c + 0.F by RLVECT_1:5; then
   0.F = (2'*'a*r1)^2 + 4'*'a*r1*b + 4'*'a*c by RLVECT_1:5
      .= (2'*'a)^2 * r1^2 + 4'*'a*r1*b + 4'*'a*c by ch0
      .= ((2^2) '*' a^2) * r1^2 + 4'*'a*r1*b + 4'*'a*c by ch1
      .= ((2*2) '*' a^2) * r1^2 + 4'*'a*r1*b + 4'*'a*c by SQUARE_1:def 1
      .= (4 '*' (a * a)) * r1^2 + 4'*'a*r1*b + 4'*'a*c by O_RING_1:def 1
      .= ((4 '*' a) * a) * r1^2 + 4'*'a*r1*b + 4'*'a*c by REALALG2:5
      .= (4 '*' a) * (a * r1^2) + (4'*'a)*r1*b + (4'*'a)*c by GROUP_1:def 3
      .= ((4 '*' a) * (a * r1^2) + (4'*'a)*(r1*b)) + (4'*'a)*c by GROUP_1:def 3
      .= (4 '*' a) * (a * r1^2 + r1*b) + (4'*'a)*c by VECTSP_1:def 2
      .= (4 '*' a) * ((a * r1^2 + r1*b) + c) by VECTSP_1:def 2; then
E: 0.F = ((a * r1^2) + r1*b) + c by H,VECTSP_2:def 1
      .= a * r1^2 + b * r1  + c by GROUP_1:def 12;
thus eval(<%c,b,a%>,r1)
    = c + b * r1 + a * r1^2 by evalq
   .= 0.F by E,RLVECT_1:def 3;
end;
