 reserve n,m for Nat,
      o for object,
      p for pair object,
      x,y,z for Surreal;

theorem
  x < 0_No & (for y st y in R_x holds y < 0_No)
      implies
    sqrt x = 0_No
proof
  assume that
A1:x < 0_No and
A2:for y st y in R_x holds y < 0_No;
  defpred P[Nat] means
  sqrtR(sqrt_0 x,x).$1={};
A3:P[0]
  proof
    assume sqrtR(sqrt_0 x,x).0<>{};
    then consider a be object such that
A4: a in sqrtR(sqrt_0 x,x).0 by XBOOLE_0:def 1;
    a in R_sqrt_0 x by A4,Th6;
    then consider r be Surreal such that
A5: a = sqrt r & r in R_NonNegativePart x by Def9;
    r in R_x & 0_No <= r by A5,Th2;
    hence thesis by A2;
  end;
A6:P[n] implies P[n+1]
  proof
    assume
A7: P[n];
    assume sqrtR(sqrt_0 x,x).(n+1)<>{};
    then consider y be object such that
A8: y in sqrtR(sqrt_0 x,x).(n+1) by XBOOLE_0:def 1;
    y in sqrtR(sqrt_0 x,x).n \/ sqrt(x,sqrtL(sqrt_0 x,x).n,sqrtL(sqrt_0 x,x).n)
    \/ sqrt(x,sqrtR(sqrt_0 x,x).n,sqrtR(sqrt_0 x,x).n) by A8,Th8;
    then y in sqrtR(sqrt_0 x,x).n
     \/ sqrt(x,sqrtL(sqrt_0 x,x).n,sqrtL(sqrt_0 x,x).n)
    or y in sqrt(x,sqrtR(sqrt_0 x,x).n,sqrtR(sqrt_0 x,x).n) by XBOOLE_0:def 3;
    then per cases by XBOOLE_0:def 3;
    suppose y in sqrtR(sqrt_0 x,x).n;
      hence thesis by A7;
    end;
    suppose y in sqrt(x,sqrtL(sqrt_0 x,x).n,sqrtL(sqrt_0 x,x).n);
      then consider x1,y1 be Surreal such that
A9:   x1 in sqrtL(sqrt_0 x,x).n & y1 in sqrtL(sqrt_0 x,x).n &
      not x1 + y1 == 0_No & y = (x +'(x1 * y1)) * (x1+y1)" by Def2;
      x <=0_No by A1;
      then sqrtL(sqrt_0 x,x).n c= Union sqrtL(sqrt_0 x,x) ={}
      by ABCMIZ_1:1,Th18;
      hence thesis by A9;
    end;
    suppose y in sqrt(x,sqrtR(sqrt_0 x,x).n,sqrtR(sqrt_0 x,x).n);
      then ex x1,y1 be Surreal st
      x1 in sqrtR(sqrt_0 x,x).n & y1 in sqrtR(sqrt_0 x,x).n &
      not x1 + y1 == 0_No & y = (x +'(x1 * y1)) * (x1+y1)" by Def2;
      hence thesis by A7;
    end;
  end;
A10:P[n] from NAT_1:sch 2(A3,A6);
A11:Union sqrtR(sqrt_0 x,x)={}
  proof
    assume Union sqrtR(sqrt_0 x,x) <>{};
    then consider a be object such that
A12:a in Union sqrtR(sqrt_0 x,x) by XBOOLE_0:def 1;
    consider n be object such that
A13:n in dom sqrtR(sqrt_0 x,x) & a in sqrtR(sqrt_0 x,x).n by A12,CARD_5:2;
    dom sqrtR(sqrt_0 x,x)=NAT by Def5;
    then reconsider n as Nat by A13;
    sqrtR(sqrt_0 x,x).n ={} by A10;
    hence thesis by A13;
  end;
  x <= 0_No by A1;
  then Union sqrtL(sqrt_0 x,x)={} by Th18;
  hence thesis by A11,Th15;
end;
