Article METRIC_4, MML version 4.99.1005

:: METRIC_4:funcnot 1 => METRIC_4:func 1
definition
  let a1, a2 be non empty Reflexive discerning symmetric triangle MetrStruct;
  func dist_cart2S(A1,A2) -> Function-like quasi_total Relation of [:[:the carrier of a1,the carrier of a2:],[:the carrier of a1,the carrier of a2:]:],REAL means
    for b1, b2 being Element of the carrier of a1
    for b3, b4 being Element of the carrier of a2
    for b5, b6 being Element of [:the carrier of a1,the carrier of a2:]
          st b5 = [b1,b3] & b6 = [b2,b4]
       holds it .(b5,b6) = sqrt ((dist(b1,b2)) ^2 + ((dist(b3,b4)) ^2));
end;

:: METRIC_4:def 1
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct
for b3 being Function-like quasi_total Relation of [:[:the carrier of b1,the carrier of b2:],[:the carrier of b1,the carrier of b2:]:],REAL holds
      b3 = dist_cart2S(b1,b2)
   iff
      for b4, b5 being Element of the carrier of b1
      for b6, b7 being Element of the carrier of b2
      for b8, b9 being Element of [:the carrier of b1,the carrier of b2:]
            st b8 = [b4,b6] & b9 = [b5,b7]
         holds b3 .(b8,b9) = sqrt ((dist(b4,b5)) ^2 + ((dist(b6,b7)) ^2));

:: METRIC_4:th 2
theorem
for b1, b2 being real set
      st 0 <= b1 & 0 <= b2
   holds    sqrt (b1 + b2) = 0
   iff
      b1 = 0 & b2 = 0;

:: METRIC_4:th 3
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct
for b3, b4 being Element of [:the carrier of b1,the carrier of b2:] holds
   (dist_cart2S(b1,b2)) .(b3,b4) = 0
iff
   b3 = b4;

:: METRIC_4:th 4
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct
for b3, b4 being Element of [:the carrier of b1,the carrier of b2:] holds
(dist_cart2S(b1,b2)) .(b3,b4) = (dist_cart2S(b1,b2)) .(b4,b3);

:: METRIC_4:th 5
theorem
for b1, b2, b3, b4 being real set
      st 0 <= b1 & 0 <= b2 & 0 <= b3 & 0 <= b4
   holds sqrt ((b1 + b3) ^2 + ((b2 + b4) ^2)) <= (sqrt (b1 ^2 + (b2 ^2))) + sqrt (b3 ^2 + (b4 ^2));

:: METRIC_4:th 6
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct
for b3, b4, b5 being Element of [:the carrier of b1,the carrier of b2:] holds
(dist_cart2S(b1,b2)) .(b3,b5) <= ((dist_cart2S(b1,b2)) .(b3,b4)) + ((dist_cart2S(b1,b2)) .(b4,b5));

:: METRIC_4:funcnot 2 => METRIC_4:func 2
definition
  let a1, a2 be non empty Reflexive discerning symmetric triangle MetrStruct;
  let a3, a4 be Element of [:the carrier of a1,the carrier of a2:];
  func dist2S(A3,A4) -> Element of REAL equals
    (dist_cart2S(a1,a2)) .(a3,a4);
end;

:: METRIC_4:def 2
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct
for b3, b4 being Element of [:the carrier of b1,the carrier of b2:] holds
dist2S(b3,b4) = (dist_cart2S(b1,b2)) .(b3,b4);

:: METRIC_4:funcnot 3 => METRIC_4:func 3
definition
  let a1, a2 be non empty Reflexive discerning symmetric triangle MetrStruct;
  func MetrSpaceCart2S(A1,A2) -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:the carrier of a1,the carrier of a2:],dist_cart2S(a1,a2)#);
end;

:: METRIC_4:def 3
theorem
for b1, b2 being non empty Reflexive discerning symmetric triangle MetrStruct holds
MetrSpaceCart2S(b1,b2) = MetrStruct(#[:the carrier of b1,the carrier of b2:],dist_cart2S(b1,b2)#);

:: METRIC_4:funcnot 4 => METRIC_4:func 4
definition
  let a1, a2, a3 be non empty Reflexive discerning symmetric triangle MetrStruct;
  func dist_cart3S(A1,A2,A3) -> Function-like quasi_total Relation of [:[:the carrier of a1,the carrier of a2,the carrier of a3:],[:the carrier of a1,the carrier of a2,the carrier of a3:]:],REAL means
    for b1, b2 being Element of the carrier of a1
    for b3, b4 being Element of the carrier of a2
    for b5, b6 being Element of the carrier of a3
    for b7, b8 being Element of [:the carrier of a1,the carrier of a2,the carrier of a3:]
          st b7 = [b1,b3,b5] & b8 = [b2,b4,b6]
       holds it .(b7,b8) = sqrt (((dist(b1,b2)) ^2 + ((dist(b3,b4)) ^2)) + ((dist(b5,b6)) ^2));
end;

:: METRIC_4:def 4
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct
for b4 being Function-like quasi_total Relation of [:[:the carrier of b1,the carrier of b2,the carrier of b3:],[:the carrier of b1,the carrier of b2,the carrier of b3:]:],REAL holds
      b4 = dist_cart3S(b1,b2,b3)
   iff
      for b5, b6 being Element of the carrier of b1
      for b7, b8 being Element of the carrier of b2
      for b9, b10 being Element of the carrier of b3
      for b11, b12 being Element of [:the carrier of b1,the carrier of b2,the carrier of b3:]
            st b11 = [b5,b7,b9] & b12 = [b6,b8,b10]
         holds b4 .(b11,b12) = sqrt (((dist(b5,b6)) ^2 + ((dist(b7,b8)) ^2)) + ((dist(b9,b10)) ^2));

:: METRIC_4:th 10
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct
for b4, b5 being Element of [:the carrier of b1,the carrier of b2,the carrier of b3:] holds
   (dist_cart3S(b1,b2,b3)) .(b4,b5) = 0
iff
   b4 = b5;

:: METRIC_4:th 11
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct
for b4, b5 being Element of [:the carrier of b1,the carrier of b2,the carrier of b3:] holds
(dist_cart3S(b1,b2,b3)) .(b4,b5) = (dist_cart3S(b1,b2,b3)) .(b5,b4);

:: METRIC_4:th 12
theorem
for b1, b2, b3 being complex set holds
((b1 + b2) + b3) ^2 = ((b1 ^2 + (b2 ^2)) + (b3 ^2)) + ((((2 * b1) * b2) + ((2 * b1) * b3)) + ((2 * b2) * b3));

:: METRIC_4:th 13
theorem
for b1, b2, b3, b4, b5, b6 being real set holds
(((2 * (b1 * b4)) * (b3 * b2)) + ((2 * (b1 * b6)) * (b5 * b3))) + ((2 * (b2 * b6)) * (b5 * b4)) <= (((((b1 * b4) ^2 + ((b3 * b2) ^2)) + ((b1 * b6) ^2)) + ((b5 * b3) ^2)) + ((b2 * b6) ^2)) + ((b5 * b4) ^2);

:: METRIC_4:th 15
theorem
for b1, b2, b3, b4, b5, b6 being real set holds
(((b1 * b3) + (b2 * b4)) + (b5 * b6)) ^2 <= ((b1 ^2 + (b2 ^2)) + (b5 ^2)) * ((b3 ^2 + (b4 ^2)) + (b6 ^2));

:: METRIC_4:th 16
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct
for b4, b5, b6 being Element of [:the carrier of b1,the carrier of b2,the carrier of b3:] holds
(dist_cart3S(b1,b2,b3)) .(b4,b6) <= ((dist_cart3S(b1,b2,b3)) .(b4,b5)) + ((dist_cart3S(b1,b2,b3)) .(b5,b6));

:: METRIC_4:funcnot 5 => METRIC_4:func 5
definition
  let a1, a2, a3 be non empty Reflexive discerning symmetric triangle MetrStruct;
  let a4, a5 be Element of [:the carrier of a1,the carrier of a2,the carrier of a3:];
  func dist3S(A4,A5) -> Element of REAL equals
    (dist_cart3S(a1,a2,a3)) .(a4,a5);
end;

:: METRIC_4:def 5
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct
for b4, b5 being Element of [:the carrier of b1,the carrier of b2,the carrier of b3:] holds
dist3S(b4,b5) = (dist_cart3S(b1,b2,b3)) .(b4,b5);

:: METRIC_4:funcnot 6 => METRIC_4:func 6
definition
  let a1, a2, a3 be non empty Reflexive discerning symmetric triangle MetrStruct;
  func MetrSpaceCart3S(A1,A2,A3) -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:the carrier of a1,the carrier of a2,the carrier of a3:],dist_cart3S(a1,a2,a3)#);
end;

:: METRIC_4:def 6
theorem
for b1, b2, b3 being non empty Reflexive discerning symmetric triangle MetrStruct holds
MetrSpaceCart3S(b1,b2,b3) = MetrStruct(#[:the carrier of b1,the carrier of b2,the carrier of b3:],dist_cart3S(b1,b2,b3)#);

:: METRIC_4:funcnot 7 => METRIC_4:func 7
definition
  func taxi_dist2 -> Function-like quasi_total Relation of [:[:REAL,REAL:],[:REAL,REAL:]:],REAL means
    for b1, b2, b3, b4 being Element of REAL
    for b5, b6 being Element of [:REAL,REAL:]
          st b5 = [b1,b3] & b6 = [b2,b4]
       holds it .(b5,b6) = (real_dist .(b1,b2)) + (real_dist .(b3,b4));
end;

:: METRIC_4:def 7
theorem
for b1 being Function-like quasi_total Relation of [:[:REAL,REAL:],[:REAL,REAL:]:],REAL holds
      b1 = taxi_dist2
   iff
      for b2, b3, b4, b5 being Element of REAL
      for b6, b7 being Element of [:REAL,REAL:]
            st b6 = [b2,b4] & b7 = [b3,b5]
         holds b1 .(b6,b7) = (real_dist .(b2,b3)) + (real_dist .(b4,b5));

:: METRIC_4:th 19
theorem
for b1, b2 being Element of [:REAL,REAL:] holds
   taxi_dist2 .(b1,b2) = 0
iff
   b1 = b2;

:: METRIC_4:th 20
theorem
for b1, b2 being Element of [:REAL,REAL:] holds
taxi_dist2 .(b1,b2) = taxi_dist2 .(b2,b1);

:: METRIC_4:th 21
theorem
for b1, b2, b3 being Element of [:REAL,REAL:] holds
taxi_dist2 .(b1,b3) <= (taxi_dist2 .(b1,b2)) + (taxi_dist2 .(b2,b3));

:: METRIC_4:funcnot 8 => METRIC_4:func 8
definition
  func RealSpaceCart2 -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:REAL,REAL:],taxi_dist2#);
end;

:: METRIC_4:def 8
theorem
RealSpaceCart2 = MetrStruct(#[:REAL,REAL:],taxi_dist2#);

:: METRIC_4:funcnot 9 => METRIC_4:func 9
definition
  func Eukl_dist2 -> Function-like quasi_total Relation of [:[:REAL,REAL:],[:REAL,REAL:]:],REAL means
    for b1, b2, b3, b4 being Element of REAL
    for b5, b6 being Element of [:REAL,REAL:]
          st b5 = [b1,b3] & b6 = [b2,b4]
       holds it .(b5,b6) = sqrt ((real_dist .(b1,b2)) ^2 + ((real_dist .(b3,b4)) ^2));
end;

:: METRIC_4:def 9
theorem
for b1 being Function-like quasi_total Relation of [:[:REAL,REAL:],[:REAL,REAL:]:],REAL holds
      b1 = Eukl_dist2
   iff
      for b2, b3, b4, b5 being Element of REAL
      for b6, b7 being Element of [:REAL,REAL:]
            st b6 = [b2,b4] & b7 = [b3,b5]
         holds b1 .(b6,b7) = sqrt ((real_dist .(b2,b3)) ^2 + ((real_dist .(b4,b5)) ^2));

:: METRIC_4:th 22
theorem
for b1, b2 being Element of [:REAL,REAL:] holds
   Eukl_dist2 .(b1,b2) = 0
iff
   b1 = b2;

:: METRIC_4:th 23
theorem
for b1, b2 being Element of [:REAL,REAL:] holds
Eukl_dist2 .(b1,b2) = Eukl_dist2 .(b2,b1);

:: METRIC_4:th 24
theorem
for b1, b2, b3 being Element of [:REAL,REAL:] holds
Eukl_dist2 .(b1,b3) <= (Eukl_dist2 .(b1,b2)) + (Eukl_dist2 .(b2,b3));

:: METRIC_4:funcnot 10 => METRIC_4:func 10
definition
  func EuklSpace2 -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:REAL,REAL:],Eukl_dist2#);
end;

:: METRIC_4:def 10
theorem
EuklSpace2 = MetrStruct(#[:REAL,REAL:],Eukl_dist2#);

:: METRIC_4:funcnot 11 => METRIC_4:func 11
definition
  func taxi_dist3 -> Function-like quasi_total Relation of [:[:REAL,REAL,REAL:],[:REAL,REAL,REAL:]:],REAL means
    for b1, b2, b3, b4, b5, b6 being Element of REAL
    for b7, b8 being Element of [:REAL,REAL,REAL:]
          st b7 = [b1,b3,b5] & b8 = [b2,b4,b6]
       holds it .(b7,b8) = ((real_dist .(b1,b2)) + (real_dist .(b3,b4))) + (real_dist .(b5,b6));
end;

:: METRIC_4:def 11
theorem
for b1 being Function-like quasi_total Relation of [:[:REAL,REAL,REAL:],[:REAL,REAL,REAL:]:],REAL holds
      b1 = taxi_dist3
   iff
      for b2, b3, b4, b5, b6, b7 being Element of REAL
      for b8, b9 being Element of [:REAL,REAL,REAL:]
            st b8 = [b2,b4,b6] & b9 = [b3,b5,b7]
         holds b1 .(b8,b9) = ((real_dist .(b2,b3)) + (real_dist .(b4,b5))) + (real_dist .(b6,b7));

:: METRIC_4:th 25
theorem
for b1, b2 being Element of [:REAL,REAL,REAL:] holds
   taxi_dist3 .(b1,b2) = 0
iff
   b1 = b2;

:: METRIC_4:th 26
theorem
for b1, b2 being Element of [:REAL,REAL,REAL:] holds
taxi_dist3 .(b1,b2) = taxi_dist3 .(b2,b1);

:: METRIC_4:th 27
theorem
for b1, b2, b3 being Element of [:REAL,REAL,REAL:] holds
taxi_dist3 .(b1,b3) <= (taxi_dist3 .(b1,b2)) + (taxi_dist3 .(b2,b3));

:: METRIC_4:funcnot 12 => METRIC_4:func 12
definition
  func RealSpaceCart3 -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:REAL,REAL,REAL:],taxi_dist3#);
end;

:: METRIC_4:def 12
theorem
RealSpaceCart3 = MetrStruct(#[:REAL,REAL,REAL:],taxi_dist3#);

:: METRIC_4:funcnot 13 => METRIC_4:func 13
definition
  func Eukl_dist3 -> Function-like quasi_total Relation of [:[:REAL,REAL,REAL:],[:REAL,REAL,REAL:]:],REAL means
    for b1, b2, b3, b4, b5, b6 being Element of REAL
    for b7, b8 being Element of [:REAL,REAL,REAL:]
          st b7 = [b1,b3,b5] & b8 = [b2,b4,b6]
       holds it .(b7,b8) = sqrt (((real_dist .(b1,b2)) ^2 + ((real_dist .(b3,b4)) ^2)) + ((real_dist .(b5,b6)) ^2));
end;

:: METRIC_4:def 13
theorem
for b1 being Function-like quasi_total Relation of [:[:REAL,REAL,REAL:],[:REAL,REAL,REAL:]:],REAL holds
      b1 = Eukl_dist3
   iff
      for b2, b3, b4, b5, b6, b7 being Element of REAL
      for b8, b9 being Element of [:REAL,REAL,REAL:]
            st b8 = [b2,b4,b6] & b9 = [b3,b5,b7]
         holds b1 .(b8,b9) = sqrt (((real_dist .(b2,b3)) ^2 + ((real_dist .(b4,b5)) ^2)) + ((real_dist .(b6,b7)) ^2));

:: METRIC_4:th 28
theorem
for b1, b2 being Element of [:REAL,REAL,REAL:] holds
   Eukl_dist3 .(b1,b2) = 0
iff
   b1 = b2;

:: METRIC_4:th 29
theorem
for b1, b2 being Element of [:REAL,REAL,REAL:] holds
Eukl_dist3 .(b1,b2) = Eukl_dist3 .(b2,b1);

:: METRIC_4:th 30
theorem
for b1, b2, b3 being Element of [:REAL,REAL,REAL:] holds
Eukl_dist3 .(b1,b3) <= (Eukl_dist3 .(b1,b2)) + (Eukl_dist3 .(b2,b3));

:: METRIC_4:funcnot 14 => METRIC_4:func 14
definition
  func EuklSpace3 -> non empty strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#[:REAL,REAL,REAL:],Eukl_dist3#);
end;

:: METRIC_4:def 14
theorem
EuklSpace3 = MetrStruct(#[:REAL,REAL,REAL:],Eukl_dist3#);