Article EUCLID, MML version 4.99.1005

:: EUCLID:funcnot 1 => EUCLID:func 1
definition
  let a1 be natural set;
  func REAL A1 -> non empty FinSequenceSet of REAL equals
    a1 -tuples_on REAL;
end;

:: EUCLID:def 1
theorem
for b1 being natural set holds
   REAL b1 = b1 -tuples_on REAL;

:: EUCLID:funcnot 2 => EUCLID:func 2
definition
  func absreal -> Function-like quasi_total Relation of REAL,REAL means
    for b1 being real set holds
       it . b1 = abs b1;
end;

:: EUCLID:def 2
theorem
for b1 being Function-like quasi_total Relation of REAL,REAL holds
      b1 = absreal
   iff
      for b2 being real set holds
         b1 . b2 = abs b2;

:: EUCLID:funcnot 3 => EUCLID:func 3
definition
  let a1 be Relation-like Function-like FinSequence-like real-valued set;
  redefine func abs A1 -> FinSequence of REAL equals
    a1 * absreal;
  projectivity;
::  for a1 being Relation-like Function-like FinSequence-like real-valued set holds
::     abs abs a1 = abs a1;
end;

:: EUCLID:def 3
theorem
for b1 being Relation-like Function-like FinSequence-like real-valued set holds
   abs b1 = b1 * absreal;

:: EUCLID:funcnot 4 => EUCLID:func 4
definition
  let a1 be natural set;
  func 0* A1 -> Relation-like Function-like FinSequence-like real-valued set equals
    a1 |-> 0;
end;

:: EUCLID:def 4
theorem
for b1 being natural set holds
   0* b1 = b1 |-> 0;

:: EUCLID:funcnot 5 => EUCLID:func 5
definition
  let a1 be natural set;
  redefine func 0* a1 -> Element of REAL a1;
end;

:: EUCLID:funcnot 6 => EUCLID:func 6
definition
  let a1 be natural set;
  let a2 be Element of REAL a1;
  redefine func - a2 -> Element of REAL a1;
  involutiveness;
::  for a1 being natural set
::  for a2 being Element of REAL a1 holds
::     - - a2 = a2;
end;

:: EUCLID:funcnot 7 => EUCLID:func 7
definition
  let a1 be natural set;
  let a2, a3 be Element of REAL a1;
  redefine func a2 + a3 -> Element of REAL a1;
  commutativity;
::  for a1 being natural set
::  for a2, a3 being Element of REAL a1 holds
::  a2 + a3 = a3 + a2;
end;

:: EUCLID:funcnot 8 => EUCLID:func 8
definition
  let a1 be natural set;
  let a2, a3 be Element of REAL a1;
  redefine func a2 - a3 -> Element of REAL a1;
end;

:: EUCLID:funcnot 9 => EUCLID:func 9
definition
  let a1 be natural set;
  let a2 be Element of REAL a1;
  let a3 be real set;
  redefine func a3 * a2 -> Element of REAL a1;
end;

:: EUCLID:funcnot 10 => EUCLID:func 10
definition
  let a1 be natural set;
  let a2 be Element of REAL a1;
  redefine func abs a2 -> Element of a1 -tuples_on REAL;
  projectivity;
::  for a1 being natural set
::  for a2 being Element of REAL a1 holds
::     abs abs a2 = abs a2;
end;

:: EUCLID:funcnot 11 => EUCLID:func 11
definition
  let a1 be natural set;
  let a2 be Element of REAL a1;
  redefine func sqr a2 -> Element of a1 -tuples_on REAL;
end;

:: EUCLID:funcnot 12 => EUCLID:func 12
definition
  let a1 be Relation-like Function-like FinSequence-like real-valued set;
  func |.A1.| -> Element of REAL equals
    sqrt Sum sqr a1;
end;

:: EUCLID:def 5
theorem
for b1 being Relation-like Function-like FinSequence-like real-valued set holds
   |.b1.| = sqrt Sum sqr b1;

:: EUCLID:th 2
theorem
for b1 being natural set
for b2 being Element of REAL b1 holds
   len b2 = b1;

:: EUCLID:th 3
theorem
for b1 being natural set
for b2 being Element of REAL b1 holds
   dom b2 = Seg b1;

:: EUCLID:th 4
theorem
for b1 being natural set
for b2 being Relation-like Function-like FinSequence-like real-valued set holds
   b2 . b1 in REAL;

:: EUCLID:th 6
theorem
for b1, b2 being natural set
for b3 being real set
for b4 being Element of REAL b1
      st b3 = b4 . b2
   holds (abs b4) . b2 = abs b3;

:: EUCLID:th 7
theorem
for b1 being natural set holds
   abs 0* b1 = b1 |-> 0;

:: EUCLID:th 8
theorem
for b1 being Relation-like Function-like FinSequence-like real-valued set holds
   abs - b1 = abs b1;

:: EUCLID:th 9
theorem
for b1 being real set
for b2 being Relation-like Function-like FinSequence-like real-valued set holds
   abs (b1 * b2) = (abs b1) * abs b2;

:: EUCLID:th 10
theorem
for b1 being natural set holds
   |.0* b1.| = 0;

:: EUCLID:th 11
theorem
for b1 being natural set
for b2 being Element of REAL b1
      st |.b2.| = 0
   holds b2 = 0* b1;

:: EUCLID:th 12
theorem
for b1 being Relation-like Function-like FinSequence-like real-valued set holds
   0 <= |.b1.|;

:: EUCLID:funcreg 1
registration
  let a1 be Relation-like Function-like FinSequence-like real-valued set;
  cluster |.a1.| -> non negative;
end;

:: EUCLID:th 13
theorem
for b1 being Relation-like Function-like FinSequence-like real-valued set holds
   |.- b1.| = |.b1.|;

:: EUCLID:th 14
theorem
for b1 being real set
for b2 being Relation-like Function-like FinSequence-like real-valued set holds
   |.b1 * b2.| = (abs b1) * |.b2.|;

:: EUCLID:th 15
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
|.b2 + b3.| <= |.b2.| + |.b3.|;

:: EUCLID:th 16
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
|.b2 - b3.| <= |.b2.| + |.b3.|;

:: EUCLID:th 17
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
|.b2.| - |.b3.| <= |.b2 + b3.|;

:: EUCLID:th 18
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
|.b2.| - |.b3.| <= |.b2 - b3.|;

:: EUCLID:th 19
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
   |.b2 - b3.| = 0
iff
   b2 = b3;

:: EUCLID:funcreg 2
registration
  let a1 be natural set;
  let a2 be Element of REAL a1;
  cluster |.a2 - a2.| -> empty;
end;

:: EUCLID:th 20
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1
      st b2 <> b3
   holds 0 < |.b2 - b3.|;

:: EUCLID:th 21
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
|.b2 - b3.| = |.b3 - b2.|;

:: EUCLID:th 22
theorem
for b1 being natural set
for b2, b3, b4 being Element of REAL b1 holds
|.b2 - b3.| <= |.b2 - b4.| + |.b4 - b3.|;

:: EUCLID:funcnot 13 => EUCLID:func 13
definition
  let a1 be natural set;
  func Pitag_dist A1 -> Function-like quasi_total Relation of [:REAL a1,REAL a1:],REAL means
    for b1, b2 being Element of REAL a1 holds
    it .(b1,b2) = |.b1 - b2.|;
end;

:: EUCLID:def 6
theorem
for b1 being natural set
for b2 being Function-like quasi_total Relation of [:REAL b1,REAL b1:],REAL holds
      b2 = Pitag_dist b1
   iff
      for b3, b4 being Element of REAL b1 holds
      b2 .(b3,b4) = |.b3 - b4.|;

:: EUCLID:th 23
theorem
for b1 being natural set
for b2, b3 being Element of REAL b1 holds
sqr (b2 - b3) = sqr (b3 - b2);

:: EUCLID:th 24
theorem
for b1 being natural set holds
   Pitag_dist b1 is_metric_of REAL b1;

:: EUCLID:funcnot 14 => EUCLID:func 14
definition
  let a1 be natural set;
  func Euclid A1 -> strict Reflexive discerning symmetric triangle MetrStruct equals
    MetrStruct(#REAL a1,Pitag_dist a1#);
end;

:: EUCLID:def 7
theorem
for b1 being natural set holds
   Euclid b1 = MetrStruct(#REAL b1,Pitag_dist b1#);

:: EUCLID:funcreg 3
registration
  let a1 be natural set;
  cluster Euclid a1 -> non empty strict Reflexive discerning symmetric triangle;
end;

:: EUCLID:funcnot 15 => EUCLID:func 15
definition
  let a1 be natural set;
  func TOP-REAL A1 -> strict TopSpace-like TopStruct equals
    TopSpaceMetr Euclid a1;
end;

:: EUCLID:def 8
theorem
for b1 being natural set holds
   TOP-REAL b1 = TopSpaceMetr Euclid b1;

:: EUCLID:funcreg 4
registration
  let a1 be natural set;
  cluster TOP-REAL a1 -> non empty strict TopSpace-like;
end;

:: EUCLID:th 25
theorem
for b1 being natural set holds
   the carrier of TOP-REAL b1 = REAL b1;

:: EUCLID:th 26
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   b2 is Function-like quasi_total Relation of Seg b1,REAL;

:: EUCLID:th 27
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   b2 is FinSequence of REAL;

:: EUCLID:funcreg 5
registration
  let a1 be natural set;
  cluster TOP-REAL a1 -> strict TopSpace-like constituted-FinSeqs;
end;

:: EUCLID:condreg 1
registration
  let a1 be natural set;
  cluster -> real-valued (Element of the carrier of TOP-REAL a1);
end;

:: EUCLID:th 28
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   len b2 = b1;

:: EUCLID:funcnot 16 => EUCLID:func 4
notation
  let a1 be natural set;
  synonym 0.REAL a1 for 0* a1;
end;

:: EUCLID:funcnot 17 => EUCLID:func 16
definition
  let a1 be natural set;
  redefine func 0.REAL a1 -> Element of the carrier of TOP-REAL a1;
end;

:: EUCLID:funcnot 18 => EUCLID:func 17
definition
  let a1 be natural set;
  let a2, a3 be Element of the carrier of TOP-REAL a1;
  redefine func a2 + a3 -> Element of the carrier of TOP-REAL a1;
  commutativity;
::  for a1 being natural set
::  for a2, a3 being Element of the carrier of TOP-REAL a1 holds
::  a2 + a3 = a3 + a2;
end;

:: EUCLID:th 29
theorem
for b1 being natural set
for b2 being Element of REAL b1 holds
   sqr abs b2 = sqr b2;

:: EUCLID:th 30
theorem
for b1 being natural set
for b2, b3, b4 being Element of the carrier of TOP-REAL b1 holds
(b2 + b3) + b4 = b2 + (b3 + b4);

:: EUCLID:th 31
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   (0.REAL b1) + b2 = b2 & b2 + 0.REAL b1 = b2;

:: EUCLID:funcnot 19 => EUCLID:func 18
definition
  let a1 be natural set;
  let a2 be Element of the carrier of TOP-REAL a1;
  let a3 be real set;
  redefine func a3 * a2 -> Element of the carrier of TOP-REAL a1;
end;

:: EUCLID:th 32
theorem
for b1 being natural set
for b2 being real set holds
   b2 * 0.REAL b1 = 0.REAL b1;

:: EUCLID:th 33
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   1 * b2 = b2 & 0 * b2 = 0.REAL b1;

:: EUCLID:th 34
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1
for b3, b4 being real set holds
(b3 * b4) * b2 = b3 * (b4 * b2);

:: EUCLID:th 35
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1
for b3 being real set
      st b3 * b2 = 0.REAL b1 & b3 <> 0
   holds b2 = 0.REAL b1;

:: EUCLID:th 36
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1
for b4 being real set holds
   b4 * (b2 + b3) = (b4 * b2) + (b4 * b3);

:: EUCLID:th 37
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1
for b3, b4 being real set holds
(b3 + b4) * b2 = (b3 * b2) + (b4 * b2);

:: EUCLID:th 38
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1
for b4 being real set
      st b4 * b2 = b4 * b3 & b4 <> 0
   holds b2 = b3;

:: EUCLID:funcnot 20 => EUCLID:func 19
definition
  let a1 be natural set;
  let a2 be Element of the carrier of TOP-REAL a1;
  redefine func - a2 -> Element of the carrier of TOP-REAL a1;
  involutiveness;
::  for a1 being natural set
::  for a2 being Element of the carrier of TOP-REAL a1 holds
::     - - a2 = a2;
end;

:: EUCLID:th 39
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   - - b2 = b2;

:: EUCLID:th 40
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   b2 + - b2 = 0.REAL b1;

:: EUCLID:th 41
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1
      st b2 + b3 = 0.REAL b1
   holds b2 = - b3 & b3 = - b2;

:: EUCLID:th 42
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
- (b2 + b3) = (- b2) + - b3;

:: EUCLID:th 43
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   - b2 = (- 1) * b2;

:: EUCLID:th 44
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1
for b3 being real set holds
   - (b3 * b2) = (- b3) * b2 & - (b3 * b2) = b3 * - b2;

:: EUCLID:funcnot 21 => EUCLID:func 20
definition
  let a1 be natural set;
  let a2, a3 be Element of the carrier of TOP-REAL a1;
  redefine func a2 - a3 -> Element of the carrier of TOP-REAL a1;
end;

:: EUCLID:th 45
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
b2 - b3 = b2 + - b3;

:: EUCLID:th 46
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1 holds
   b2 - b2 = 0.REAL b1;

:: EUCLID:th 47
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1
      st b2 - b3 = 0.REAL b1
   holds b2 = b3;

:: EUCLID:th 48
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
- (b2 - b3) = b3 - b2 & - (b2 - b3) = (- b2) + b3;

:: EUCLID:th 49
theorem
for b1 being natural set
for b2, b3, b4 being Element of the carrier of TOP-REAL b1 holds
b2 + (b3 - b4) = (b2 + b3) - b4;

:: EUCLID:th 50
theorem
for b1 being natural set
for b2, b3, b4 being Element of the carrier of TOP-REAL b1 holds
b2 - (b3 + b4) = (b2 - b3) - b4;

:: EUCLID:th 51
theorem
for b1 being natural set
for b2, b3, b4 being Element of the carrier of TOP-REAL b1 holds
b2 - (b3 - b4) = (b2 - b3) + b4;

:: EUCLID:th 52
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
b2 = (b2 + b3) - b3 & b2 = (b2 - b3) + b3;

:: EUCLID:th 53
theorem
for b1 being natural set
for b2, b3 being Element of the carrier of TOP-REAL b1
for b4 being real set holds
   b4 * (b2 - b3) = (b4 * b2) - (b4 * b3);

:: EUCLID:th 54
theorem
for b1 being natural set
for b2 being Element of the carrier of TOP-REAL b1
for b3, b4 being real set holds
(b3 - b4) * b2 = (b3 * b2) - (b4 * b2);

:: EUCLID:th 55
theorem
for b1 being Element of the carrier of TOP-REAL 2 holds
   ex b2, b3 being Element of REAL st
      b1 = <*b2,b3*>;

:: EUCLID:funcnot 22 => EUCLID:func 21
definition
  let a1 be Element of the carrier of TOP-REAL 2;
  func A1 `1 -> Element of REAL equals
    a1 . 1;
end;

:: EUCLID:def 14
theorem
for b1 being Element of the carrier of TOP-REAL 2 holds
   b1 `1 = b1 . 1;

:: EUCLID:funcnot 23 => EUCLID:func 22
definition
  let a1 be Element of the carrier of TOP-REAL 2;
  func A1 `2 -> Element of REAL equals
    a1 . 2;
end;

:: EUCLID:def 15
theorem
for b1 being Element of the carrier of TOP-REAL 2 holds
   b1 `2 = b1 . 2;

:: EUCLID:funcnot 24 => FINSEQ_1:func 10
notation
  let a1, a2 be real set;
  synonym |[a1,a2]| for <*a1,a2*>;
end;

:: EUCLID:funcnot 25 => EUCLID:func 23
definition
  let a1, a2 be real set;
  redefine func |[a1, a2]| -> Element of the carrier of TOP-REAL 2;
end;

:: EUCLID:th 56
theorem
for b1, b2 being real set holds
|[b1,b2]| `1 = b1 & |[b1,b2]| `2 = b2;

:: EUCLID:th 57
theorem
for b1 being Element of the carrier of TOP-REAL 2 holds
   b1 = |[b1 `1,b1 `2]|;

:: EUCLID:th 58
theorem
0.REAL 2 = |[0,0]|;

:: EUCLID:th 59
theorem
for b1, b2 being Element of the carrier of TOP-REAL 2 holds
b1 + b2 = |[b1 `1 + (b2 `1),b1 `2 + (b2 `2)]|;

:: EUCLID:th 60
theorem
for b1, b2, b3, b4 being real set holds
|[b1,b2]| + |[b3,b4]| = |[b1 + b3,b2 + b4]|;

:: EUCLID:th 61
theorem
for b1 being real set
for b2 being Element of the carrier of TOP-REAL 2 holds
   b1 * b2 = |[b1 * (b2 `1),b1 * (b2 `2)]|;

:: EUCLID:th 62
theorem
for b1, b2, b3 being real set holds
b1 * |[b2,b3]| = |[b1 * b2,b1 * b3]|;

:: EUCLID:th 63
theorem
for b1 being Element of the carrier of TOP-REAL 2 holds
   - b1 = |[- (b1 `1),- (b1 `2)]|;

:: EUCLID:th 64
theorem
for b1, b2 being real set holds
- |[b1,b2]| = |[- b1,- b2]|;

:: EUCLID:th 65
theorem
for b1, b2 being Element of the carrier of TOP-REAL 2 holds
b1 - b2 = |[b1 `1 - (b2 `1),b1 `2 - (b2 `2)]|;

:: EUCLID:th 66
theorem
for b1, b2, b3, b4 being real set holds
|[b1,b2]| - |[b3,b4]| = |[b1 - b3,b2 - b4]|;