Article EUCLIDLP, MML version 4.99.1005

:: EUCLIDLP:th 1
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5 being Element of REAL b4 holds
   (b1 / b2) * (b3 * b5) = ((b1 * b3) / b2) * b5 &
    (1 / b2) * (b3 * b5) = (b3 / b2) * b5;

:: EUCLIDLP:th 7
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
   b2 - b2 = 0* b1 & b2 + - b2 = 0* b1;

:: EUCLIDLP:th 8
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3 being Element of REAL b2 holds
   - (b1 * b3) = (- b1) * b3 & - (b1 * b3) = b1 * - b3;

:: EUCLIDLP:th 9
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
b2 - (b3 - b4) = (b2 - b3) + b4;

:: EUCLIDLP:th 10
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
b2 + (b3 - b4) = (b2 + b3) - b4;

:: EUCLIDLP:th 11
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
   b2 = b3 + b4
iff
   b3 = b2 - b4;

:: EUCLIDLP:th 12
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
   b2 = (b3 + b4) + b5
iff
   b2 - b3 = b4 + b5;

:: EUCLIDLP:th 13
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
- ((b2 + b3) + b4) = ((- b2) + - b3) + - b4;

:: EUCLIDLP:th 14
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
   b2 = b3
iff
   b2 - b3 = 0* b1;

:: EUCLIDLP:th 15
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4, b5 being Element of REAL b2
      st b3 - b4 = b1 * b5 & b3 <> b4
   holds b1 <> 0;

:: EUCLIDLP:th 16
theorem
for b1, b2 being Element of REAL
for b3 being Element of NAT
for b4 being Element of REAL b3 holds
   (b1 - b2) * b4 = (b1 * b4) + ((- b2) * b4) &
    (b1 - b2) * b4 = (b1 * b4) + - (b2 * b4) &
    (b1 - b2) * b4 = (b1 * b4) - (b2 * b4);

:: EUCLIDLP:th 17
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4 being Element of REAL b2 holds
b1 * (b3 - b4) = (b1 * b3) + - (b1 * b4) &
 b1 * (b3 - b4) = (b1 * b3) + ((- b1) * b4) &
 b1 * (b3 - b4) = (b1 * b3) - (b1 * b4);

:: EUCLIDLP:th 18
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5 being Element of REAL b4 holds
   ((b1 - b2) - b3) * b5 = ((b1 * b5) - (b2 * b5)) - (b3 * b5);

:: EUCLIDLP:th 19
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5, b6, b7, b8 being Element of REAL b4 holds
b5 - (((b1 * b6) + (b2 * b7)) + (b3 * b8)) = b5 + ((((- b1) * b6) + ((- b2) * b7)) + ((- b3) * b8));

:: EUCLIDLP:th 20
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5, b6 being Element of REAL b4 holds
b5 - (((b1 + b2) + b3) * b6) = ((b5 + ((- b1) * b6)) + ((- b2) * b6)) + ((- b3) * b6);

:: EUCLIDLP:th 21
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
(b2 + b3) + (b4 + b5) = (b2 + b4) + (b3 + b5);

:: EUCLIDLP:th 22
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6, b7 being Element of REAL b1 holds
((b2 + b3) + b4) + ((b5 + b6) + b7) = ((b2 + b5) + (b3 + b6)) + (b4 + b7);

:: EUCLIDLP:th 23
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
(b2 + b3) - (b4 + b5) = (b2 - b4) + (b3 - b5);

:: EUCLIDLP:th 24
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6, b7 being Element of REAL b1 holds
((b2 + b3) + b4) - ((b5 + b6) + b7) = ((b2 - b5) + (b3 - b6)) + (b4 - b7);

:: EUCLIDLP:th 25
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4, b5 being Element of REAL b2 holds
b1 * ((b3 + b4) + b5) = ((b1 * b3) + (b1 * b4)) + (b1 * b5);

:: EUCLIDLP:th 26
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5, b6 being Element of REAL b4 holds
b1 * ((b2 * b5) + (b3 * b6)) = ((b1 * b2) * b5) + ((b1 * b3) * b6);

:: EUCLIDLP:th 27
theorem
for b1, b2, b3, b4 being Element of REAL
for b5 being Element of NAT
for b6, b7, b8 being Element of REAL b5 holds
b1 * (((b2 * b6) + (b3 * b7)) + (b4 * b8)) = (((b1 * b2) * b6) + ((b1 * b3) * b7)) + ((b1 * b4) * b8);

:: EUCLIDLP:th 28
theorem
for b1, b2, b3, b4 being Element of REAL
for b5 being Element of NAT
for b6, b7 being Element of REAL b5 holds
((b1 * b6) + (b2 * b7)) + ((b3 * b6) + (b4 * b7)) = ((b1 + b3) * b6) + ((b2 + b4) * b7);

:: EUCLIDLP:th 29
theorem
for b1, b2, b3, b4, b5, b6 being Element of REAL
for b7 being Element of NAT
for b8, b9, b10 being Element of REAL b7 holds
(((b1 * b8) + (b2 * b9)) + (b3 * b10)) + (((b4 * b8) + (b5 * b9)) + (b6 * b10)) = (((b1 + b4) * b8) + ((b2 + b5) * b9)) + ((b3 + b6) * b10);

:: EUCLIDLP:th 30
theorem
for b1, b2, b3, b4 being Element of REAL
for b5 being Element of NAT
for b6, b7 being Element of REAL b5 holds
((b1 * b6) + (b2 * b7)) - ((b3 * b6) + (b4 * b7)) = ((b1 - b3) * b6) + ((b2 - b4) * b7);

:: EUCLIDLP:th 31
theorem
for b1, b2, b3, b4, b5, b6 being Element of REAL
for b7 being Element of NAT
for b8, b9, b10 being Element of REAL b7 holds
(((b1 * b8) + (b2 * b9)) + (b3 * b10)) - (((b4 * b8) + (b5 * b9)) + (b6 * b10)) = (((b1 - b4) * b8) + ((b2 - b5) * b9)) + ((b3 - b6) * b10);

:: EUCLIDLP:th 32
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5, b6, b7 being Element of REAL b4
      st (b1 + b2) + b3 = 1
   holds ((b1 * b5) + (b2 * b6)) + (b3 * b7) = (b5 + (b2 * (b6 - b5))) + (b3 * (b7 - b5));

:: EUCLIDLP:th 33
theorem
for b1, b2 being Element of REAL
for b3 being Element of NAT
for b4, b5, b6, b7 being Element of REAL b3
      st b4 = (b5 + (b1 * (b6 - b5))) + (b2 * (b7 - b5))
   holds ex b8 being Element of REAL st
      b4 = ((b8 * b5) + (b1 * b6)) + (b2 * b7) &
       (b8 + b1) + b2 = 1;

:: EUCLIDLP:th 34
theorem
for b1 being Element of NAT
      st 1 <= b1
   holds 1* b1 <> 0* b1;

:: EUCLIDLP:th 35
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1
for b3, b4 being Element of REAL b1
      st b2 is being_line(b1) & b3 in b2 & b4 in b2 & b3 <> b4
   holds b2 = Line(b3,b4);

:: EUCLIDLP:th 36
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
      st b2 in Line(b4,b5) & b3 in Line(b4,b5)
   holds ex b6 being Element of REAL st
      b3 - b2 = b6 * (b5 - b4);

:: EUCLIDLP:prednot 1 => EUCLIDLP:pred 1
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
  pred A2 // A3 means
    a2 <> 0* a1 &
     a3 <> 0* a1 &
     (ex b1 being Element of REAL st
        a2 = b1 * a3);
end;

:: EUCLIDLP:dfs 1
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
To prove
     a2 // a3
it is sufficient to prove
  thus a2 <> 0* a1 &
     a3 <> 0* a1 &
     (ex b1 being Element of REAL st
        a2 = b1 * a3);

:: EUCLIDLP:def 1
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
   b2 // b3
iff
   b2 <> 0* b1 &
    b3 <> 0* b1 &
    (ex b4 being Element of REAL st
       b2 = b4 * b3);

:: EUCLIDLP:th 37
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2 // b3
   holds ex b4 being Element of REAL st
      b4 <> 0 & b2 = b4 * b3;

:: EUCLIDLP:prednot 2 => EUCLIDLP:pred 2
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
  redefine pred a2 // a3;
  symmetry;
::  for a1 being Element of NAT
::  for a2, a3 being Element of REAL a1
::        st a2 // a3
::     holds a3 // a2;
end;

:: EUCLIDLP:th 38
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
      st b2 // b3 & b3 // b4
   holds b2 // b4;

:: EUCLIDLP:prednot 3 => EUCLIDLP:pred 3
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
  pred A2,A3 are_lindependent2 means
    for b1, b2 being Element of REAL
          st (b1 * a2) + (b2 * a3) = 0* a1
       holds b1 = 0 & b2 = 0;
  symmetry;
::  for a1 being Element of NAT
::  for a2, a3 being Element of REAL a1
::        st a2,a3 are_lindependent2
::     holds a3,a2 are_lindependent2;
end;

:: EUCLIDLP:dfs 2
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
To prove
     a2,a3 are_lindependent2
it is sufficient to prove
  thus for b1, b2 being Element of REAL
          st (b1 * a2) + (b2 * a3) = 0* a1
       holds b1 = 0 & b2 = 0;

:: EUCLIDLP:def 2
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
   b2,b3 are_lindependent2
iff
   for b4, b5 being Element of REAL
         st (b4 * b2) + (b5 * b3) = 0* b1
      holds b4 = 0 & b5 = 0;

:: EUCLIDLP:prednot 4 => not EUCLIDLP:pred 3
notation
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
  antonym a2,a3 are_ldependent2 for a2,a3 are_lindependent2;
end;

:: EUCLIDLP:th 39
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2,b3 are_lindependent2
   holds b2 <> 0* b1 & b3 <> 0* b1;

:: EUCLIDLP:th 40
theorem
for b1, b2, b3, b4 being Element of REAL
for b5 being Element of NAT
for b6, b7 being Element of REAL b5
      st b6,b7 are_lindependent2 &
         (b1 * b6) + (b2 * b7) = (b3 * b6) + (b4 * b7)
   holds b1 = b3 & b2 = b4;

:: EUCLIDLP:th 41
theorem
for b1, b2, b3, b4 being Element of REAL
for b5 being Element of NAT
for b6, b7, b8, b9, b10 being Element of REAL b5
      st b10,b6 are_lindependent2 & b10 = (b1 * b7) + (b2 * b8) & b6 = (b3 * b7) + (b4 * b8)
   holds ex b11, b12, b13, b14 being Element of REAL st
      b7 = (b11 * b10) + (b12 * b6) & b8 = (b13 * b10) + (b14 * b6);

:: EUCLIDLP:th 42
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2,b3 are_lindependent2
   holds b2 <> b3;

:: EUCLIDLP:th 43
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
      st b2 - b3,b4 - b3 are_lindependent2
   holds b2 <> b4;

:: EUCLIDLP:th 44
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4 being Element of REAL b2
      st b3,b4 are_lindependent2
   holds b3 + (b1 * b4),b4 are_lindependent2;

:: EUCLIDLP:th 45
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6, b7, b8, b9 being Element of REAL b1
      st b2 - b3,b4 - b5 are_lindependent2 & b6 in Line(b3,b2) & b7 in Line(b3,b2) & b6 <> b7 & b8 in Line(b5,b4) & b9 in Line(b5,b4) & b8 <> b9
   holds b7 - b6,b9 - b8 are_lindependent2;

:: EUCLIDLP:th 46
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2 // b3
   holds b2,b3 are_ldependent2 & b2 <> 0* b1 & b3 <> 0* b1;

:: EUCLIDLP:th 47
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2,b3 are_ldependent2 & b2 <> 0* b1 & b3 <> 0* b1
   holds b2 // b3;

:: EUCLIDLP:th 48
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
ex b5 being Element of REAL b1 st
   b5 in Line(b2,b3) & b2 - b3,b4 - b5 are_orthogonal;

:: EUCLIDLP:prednot 5 => EUCLIDLP:pred 4
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
  pred A2 _|_ A3 means
    a2 <> 0* a1 & a3 <> 0* a1 & a2,a3 are_orthogonal;
  symmetry;
::  for a1 being Element of NAT
::  for a2, a3 being Element of REAL a1
::        st a2 _|_ a3
::     holds a3 _|_ a2;
end;

:: EUCLIDLP:dfs 3
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of REAL a1;
To prove
     a2 _|_ a3
it is sufficient to prove
  thus a2 <> 0* a1 & a3 <> 0* a1 & a2,a3 are_orthogonal;

:: EUCLIDLP:def 3
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
   b2 _|_ b3
iff
   b2 <> 0* b1 & b3 <> 0* b1 & b2,b3 are_orthogonal;

:: EUCLIDLP:th 49
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
      st b2 _|_ b3 & b3 // b4
   holds b2 _|_ b4;

:: EUCLIDLP:th 50
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2 _|_ b3
   holds b2,b3 are_lindependent2;

:: EUCLIDLP:th 51
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
      st b2 // b3
   holds not b2 _|_ b3;

:: EUCLIDLP:funcnot 1 => EUCLIDLP:func 1
definition
  let a1 be Element of NAT;
  func line_of_REAL A1 -> Element of bool bool REAL a1 equals
    {b1 where b1 is Element of bool REAL a1: ex b2, b3 being Element of REAL a1 st
       b1 = Line(b2,b3)};
end;

:: EUCLIDLP:def 4
theorem
for b1 being Element of NAT holds
   line_of_REAL b1 = {b2 where b2 is Element of bool REAL b1: ex b3, b4 being Element of REAL b1 st
      b2 = Line(b3,b4)};

:: EUCLIDLP:funcreg 1
registration
  let a1 be Element of NAT;
  cluster line_of_REAL a1 -> non empty;
end;

:: EUCLIDLP:th 52
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
Line(b2,b3) in line_of_REAL b1;

:: EUCLIDLP:th 53
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being Element of line_of_REAL b1
      st b2 in b4 & b3 in b4
   holds Line(b2,b3) c= b4;

:: EUCLIDLP:th 54
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1 holds
   b2 meets b3
iff
   ex b4 being Element of REAL b1 st
      b4 in b2 & b4 in b3;

:: EUCLIDLP:th 55
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3, b4 being Element of line_of_REAL b1
      st b3 misses b4 & b2 in b3
   holds not b2 in b4;

:: EUCLIDLP:th 56
theorem
for b1 being Element of NAT
for b2 being Element of line_of_REAL b1 holds
   ex b3, b4 being Element of REAL b1 st
      b2 = Line(b3,b4);

:: EUCLIDLP:th 57
theorem
for b1 being Element of NAT
for b2 being Element of line_of_REAL b1 holds
   ex b3 being Element of REAL b1 st
      b3 in b2;

:: EUCLIDLP:th 58
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st b2 in b3 & b3 is being_line(b1)
   holds ex b4 being Element of REAL b1 st
      b4 <> b2 & b4 in b3;

:: EUCLIDLP:th 59
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1)
   holds ex b4, b5 being Element of REAL b1 st
      b3 = Line(b4,b5) & b2 - b4 _|_ b5 - b4;

:: EUCLIDLP:th 60
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1)
   holds ex b4, b5 being Element of REAL b1 st
      b3 = Line(b4,b5) & b2 - b4,b5 - b4 are_lindependent2;

:: EUCLIDLP:funcnot 2 => EUCLIDLP:func 2
definition
  let a1 be Element of NAT;
  let a2 be Element of REAL a1;
  let a3 be Element of line_of_REAL a1;
  func dist_v(A2,A3) -> Element of bool REAL equals
    {|.a2 - b1.| where b1 is Element of REAL a1: b1 in a3};
end;

:: EUCLIDLP:def 5
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
   dist_v(b2,b3) = {|.b2 - b4.| where b4 is Element of REAL b1: b4 in b3};

:: EUCLIDLP:funcnot 3 => EUCLIDLP:func 3
definition
  let a1 be Element of NAT;
  let a2 be Element of REAL a1;
  let a3 be Element of line_of_REAL a1;
  func dist(A2,A3) -> Element of REAL equals
    lower_bound dist_v(a2,a3);
end;

:: EUCLIDLP:def 6
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
   dist(b2,b3) = lower_bound dist_v(b2,b3);

:: EUCLIDLP:th 61
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
for b5 being Element of line_of_REAL b1
      st b5 = Line(b2,b3)
   holds {|.b4 - b6.| where b6 is Element of REAL b1: b6 in Line(b2,b3)} = dist_v(b4,b5);

:: EUCLIDLP:th 62
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
   ex b4 being Element of REAL b1 st
      b4 in b3 & |.b2 - b4.| = dist(b2,b3);

:: EUCLIDLP:th 63
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
   0 <= dist(b2,b3);

:: EUCLIDLP:th 64
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
      b2 in b3
   iff
      dist(b2,b3) = 0;

:: EUCLIDLP:prednot 6 => EUCLIDLP:pred 5
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
  pred A2 // A3 means
    ex b1, b2, b3, b4 being Element of REAL a1 st
       a2 = Line(b1,b2) & a3 = Line(b3,b4) & b2 - b1 // b4 - b3;
  symmetry;
::  for a1 being Element of NAT
::  for a2, a3 being Element of line_of_REAL a1
::        st a2 // a3
::     holds a3 // a2;
end;

:: EUCLIDLP:dfs 7
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
To prove
     a2 // a3
it is sufficient to prove
  thus ex b1, b2, b3, b4 being Element of REAL a1 st
       a2 = Line(b1,b2) & a3 = Line(b3,b4) & b2 - b1 // b4 - b3;

:: EUCLIDLP:def 7
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1 holds
   b2 // b3
iff
   ex b4, b5, b6, b7 being Element of REAL b1 st
      b2 = Line(b4,b5) & b3 = Line(b6,b7) & b5 - b4 // b7 - b6;

:: EUCLIDLP:th 65
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of line_of_REAL b1
      st b2 // b3 & b3 // b4
   holds b2 // b4;

:: EUCLIDLP:prednot 7 => EUCLIDLP:pred 6
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
  pred A2 _|_ A3 means
    ex b1, b2, b3, b4 being Element of REAL a1 st
       a2 = Line(b1,b2) & a3 = Line(b3,b4) & b2 - b1 _|_ b4 - b3;
  symmetry;
::  for a1 being Element of NAT
::  for a2, a3 being Element of line_of_REAL a1
::        st a2 _|_ a3
::     holds a3 _|_ a2;
end;

:: EUCLIDLP:dfs 8
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
To prove
     a2 _|_ a3
it is sufficient to prove
  thus ex b1, b2, b3, b4 being Element of REAL a1 st
       a2 = Line(b1,b2) & a3 = Line(b3,b4) & b2 - b1 _|_ b4 - b3;

:: EUCLIDLP:def 8
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1 holds
   b2 _|_ b3
iff
   ex b4, b5, b6, b7 being Element of REAL b1 st
      b2 = Line(b4,b5) & b3 = Line(b6,b7) & b5 - b4 _|_ b7 - b6;

:: EUCLIDLP:th 66
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of line_of_REAL b1
      st b2 _|_ b3 & b3 // b4
   holds b2 _|_ b4;

:: EUCLIDLP:th 67
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1)
   holds ex b4 being Element of line_of_REAL b1 st
      b2 in b4 & b4 _|_ b3 & b4 meets b3;

:: EUCLIDLP:th 68
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 misses b3
   holds ex b4 being Element of REAL b1 st
      b4 in b2 & not b4 in b3;

:: EUCLIDLP:th 69
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being Element of line_of_REAL b1
      st b2 in b4 & b3 in b4 & b2 <> b3
   holds Line(b2,b3) = b4 & b4 is being_line(b1);

:: EUCLIDLP:th 70
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2 = b3
   holds b2 // b3;

:: EUCLIDLP:th 71
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 // b3
   holds b2 is being_line(b1) & b3 is being_line(b1);

:: EUCLIDLP:th 72
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 _|_ b3
   holds b2 is being_line(b1) & b3 is being_line(b1);

:: EUCLIDLP:th 73
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3 being Element of REAL b2
for b4 being Element of line_of_REAL b2
      st b3 in b4 & b1 <> 1 & b1 * b3 in b4
   holds 0* b2 in b4;

:: EUCLIDLP:th 74
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4 being Element of REAL b2
for b5 being Element of line_of_REAL b2
      st b3 in b5 & b4 in b5
   holds ex b6 being Element of REAL b2 st
      b6 in b5 & b6 - b3 = b1 * (b4 - b3);

:: EUCLIDLP:th 75
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
for b5 being Element of line_of_REAL b1
      st b2 in b5 & b3 in b5 & b4 in b5 & b2 <> b3
   holds ex b6 being Element of REAL st
      b4 - b2 = b6 * (b3 - b2);

:: EUCLIDLP:th 76
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 // b3 & b2 <> b3
   holds b2 misses b3;

:: EUCLIDLP:th 77
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st b3 is being_line(b1)
   holds ex b4 being Element of line_of_REAL b1 st
      b2 in b4 & b4 // b3;

:: EUCLIDLP:th 78
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1)
   holds ex b4 being Element of line_of_REAL b1 st
      b2 in b4 & b4 // b3 & b4 <> b3;

:: EUCLIDLP:th 79
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
for b6, b7 being Element of line_of_REAL b1
      st b2 in b6 & b3 in b6 & b2 <> b3 & b4 in b7 & b5 in b7 & b4 <> b5 & b6 _|_ b7
   holds b3 - b2 _|_ b5 - b4;

:: EUCLIDLP:th 80
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 _|_ b3
   holds b2 <> b3;

:: EUCLIDLP:th 81
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being Element of line_of_REAL b1
      st b4 is being_line(b1) & b4 = Line(b2,b3)
   holds b2 <> b3;

:: EUCLIDLP:th 82
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
for b6, b7 being Element of line_of_REAL b1
      st b2 in b6 & b3 in b6 & b2 <> b3 & b4 in b7 & b5 in b7 & b4 <> b5 & b6 // b7
   holds b3 - b2 // b5 - b4;

:: EUCLIDLP:th 83
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6 being Element of REAL b1
for b7, b8 being Element of line_of_REAL b1
      st b2 - b3,b4 - b3 are_lindependent2 & b5 in Line(b3,b2) & b6 in Line(b3,b4) & b7 = Line(b2,b4) & b8 = Line(b5,b6)
   holds    b7 // b8
   iff
      ex b9 being Element of REAL st
         b9 <> 0 & b5 - b3 = b9 * (b2 - b3) & b6 - b3 = b9 * (b4 - b3);

:: EUCLIDLP:th 84
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2 <> b3
   holds ex b4 being Element of REAL b1 st
      b4 in b2 & not b4 in b3;

:: EUCLIDLP:th 85
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3, b4 being Element of line_of_REAL b1
      st b3 _|_ b4 & b2 in b4
   holds ex b5 being Element of line_of_REAL b1 st
      b2 in b5 & b5 _|_ b4 & b5 // b3;

:: EUCLIDLP:th 86
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3, b4 being Element of line_of_REAL b1
      st b2 in b3 & b2 in b4 & b3 _|_ b4
   holds ex b5 being Element of REAL b1 st
      b2 <> b5 & b5 in b3 & not b5 in b4;

:: EUCLIDLP:funcnot 4 => EUCLIDLP:func 4
definition
  let a1 be Element of NAT;
  let a2, a3, a4 be Element of REAL a1;
  func plane(A2,A3,A4) -> Element of bool REAL a1 equals
    {b1 where b1 is Element of REAL a1: ex b2, b3, b4 being Element of REAL st
       (b2 + b3) + b4 = 1 &
        b1 = ((b2 * a2) + (b3 * a3)) + (b4 * a4)};
end;

:: EUCLIDLP:def 9
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
plane(b2,b3,b4) = {b5 where b5 is Element of REAL b1: ex b6, b7, b8 being Element of REAL st
   (b6 + b7) + b8 = 1 &
    b5 = ((b6 * b2) + (b7 * b3)) + (b8 * b4)};

:: EUCLIDLP:funcreg 2
registration
  let a1 be Element of NAT;
  let a2, a3, a4 be Element of REAL a1;
  cluster plane(a2,a3,a4) -> non empty;
end;

:: EUCLIDLP:attrnot 1 => EUCLIDLP:attr 1
definition
  let a1 be Element of NAT;
  let a2 be Element of bool REAL a1;
  attr a2 is being_plane means
    ex b1, b2, b3 being Element of REAL a1 st
       b2 - b1,b3 - b1 are_lindependent2 & a2 = plane(b1,b2,b3);
end;

:: EUCLIDLP:dfs 10
definiens
  let a1 be Element of NAT;
  let a2 be Element of bool REAL a1;
To prove
     a2 is being_plane
it is sufficient to prove
  thus ex b1, b2, b3 being Element of REAL a1 st
       b2 - b1,b3 - b1 are_lindependent2 & a2 = plane(b1,b2,b3);

:: EUCLIDLP:def 10
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1 holds
      b2 is being_plane(b1)
   iff
      ex b3, b4, b5 being Element of REAL b1 st
         b4 - b3,b5 - b3 are_lindependent2 & b2 = plane(b3,b4,b5);

:: EUCLIDLP:th 87
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
b2 in plane(b2,b3,b4) & b3 in plane(b2,b3,b4) & b4 in plane(b2,b3,b4);

:: EUCLIDLP:th 88
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6, b7 being Element of REAL b1
      st b2 in plane(b3,b4,b5) & b6 in plane(b3,b4,b5) & b7 in plane(b3,b4,b5)
   holds plane(b2,b6,b7) c= plane(b3,b4,b5);

:: EUCLIDLP:th 89
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1
for b3, b4, b5, b6 being Element of REAL b1
      st b3 in plane(b4,b5,b6) &
         (ex b7, b8, b9 being Element of REAL st
            (b7 + b8) + b9 = 0 &
             b3 = ((b7 * b4) + (b8 * b5)) + (b9 * b6))
   holds 0* b1 in plane(b4,b5,b6);

:: EUCLIDLP:th 90
theorem
for b1 being Element of NAT
for b2, b3, b4, b5, b6 being Element of REAL b1
      st b2 in plane(b3,b4,b5) & b6 in plane(b3,b4,b5)
   holds Line(b2,b6) c= plane(b3,b4,b5);

:: EUCLIDLP:th 91
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1
for b3 being Element of REAL b1
      st b2 is being_plane(b1) &
         b3 in b2 &
         (ex b4 being Element of REAL st
            b4 <> 1 & b4 * b3 in b2)
   holds 0* b1 in b2;

:: EUCLIDLP:th 92
theorem
for b1, b2, b3 being Element of REAL
for b4 being Element of NAT
for b5, b6, b7, b8 being Element of REAL b4
      st b5 - b5,b6 - b5 are_lindependent2 &
         b7 in plane(b5,b8,b6) &
         b7 = ((b1 * b5) + (b2 * b8)) + (b3 * b6) &
         (b1 + b2) + b3 <> 1
   holds 0* b4 in plane(b5,b8,b6);

:: EUCLIDLP:th 93
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
   b2 in plane(b3,b4,b5)
iff
   ex b6, b7, b8 being Element of REAL st
      (b6 + b7) + b8 = 1 &
       b2 = ((b6 * b3) + (b7 * b4)) + (b8 * b5);

:: EUCLIDLP:th 94
theorem
for b1, b2, b3, b4, b5, b6 being Element of REAL
for b7 being Element of NAT
for b8, b9, b10, b11 being Element of REAL b7
      st b8 - b9,b10 - b9 are_lindependent2 &
         b11 in plane(b9,b8,b10) &
         (b1 + b2) + b3 = 1 &
         b11 = ((b1 * b9) + (b2 * b8)) + (b3 * b10) &
         (b4 + b5) + b6 = 1 &
         b11 = ((b4 * b9) + (b5 * b8)) + (b6 * b10)
   holds b1 = b4 & b2 = b5 & b3 = b6;

:: EUCLIDLP:funcnot 5 => EUCLIDLP:func 5
definition
  let a1 be Element of NAT;
  func plane_of_REAL A1 -> Element of bool bool REAL a1 equals
    {b1 where b1 is Element of bool REAL a1: ex b2, b3, b4 being Element of REAL a1 st
       b1 = plane(b2,b3,b4)};
end;

:: EUCLIDLP:def 11
theorem
for b1 being Element of NAT holds
   plane_of_REAL b1 = {b2 where b2 is Element of bool REAL b1: ex b3, b4, b5 being Element of REAL b1 st
      b2 = plane(b3,b4,b5)};

:: EUCLIDLP:funcreg 3
registration
  let a1 be Element of NAT;
  cluster plane_of_REAL a1 -> non empty;
end;

:: EUCLIDLP:th 95
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
plane(b2,b3,b4) in plane_of_REAL b1;

:: EUCLIDLP:th 96
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
for b5 being Element of plane_of_REAL b1
      st b2 in b5 & b3 in b5 & b4 in b5
   holds plane(b2,b3,b4) c= b5;

:: EUCLIDLP:th 97
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1
for b5 being Element of plane_of_REAL b1
      st b2 in b5 & b3 in b5 & b4 in b5 & b3 - b2,b4 - b2 are_lindependent2
   holds b5 = plane(b2,b3,b4);

:: EUCLIDLP:th 98
theorem
for b1 being Element of NAT
for b2, b3 being Element of plane_of_REAL b1
      st b2 is being_plane(b1) & b2 c= b3
   holds b2 = b3;

:: EUCLIDLP:th 99
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
Line(b2,b3) c= plane(b2,b3,b4) & Line(b3,b4) c= plane(b2,b3,b4) & Line(b4,b2) c= plane(b2,b3,b4);

:: EUCLIDLP:th 100
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being Element of plane_of_REAL b1
      st b2 in b4 & b3 in b4
   holds Line(b2,b3) c= b4;

:: EUCLIDLP:prednot 8 => EUCLIDLP:pred 7
definition
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
  pred A2,A3 are_coplane means
    ex b1, b2, b3 being Element of REAL a1 st
       a2 c= plane(b1,b2,b3) & a3 c= plane(b1,b2,b3);
end;

:: EUCLIDLP:dfs 12
definiens
  let a1 be Element of NAT;
  let a2, a3 be Element of line_of_REAL a1;
To prove
     a2,a3 are_coplane
it is sufficient to prove
  thus ex b1, b2, b3 being Element of REAL a1 st
       a2 c= plane(b1,b2,b3) & a3 c= plane(b1,b2,b3);

:: EUCLIDLP:def 12
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1 holds
   b2,b3 are_coplane
iff
   ex b4, b5, b6 being Element of REAL b1 st
      b2 c= plane(b4,b5,b6) & b3 c= plane(b4,b5,b6);

:: EUCLIDLP:th 101
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1 holds
   b2,b3 are_coplane
iff
   ex b4 being Element of plane_of_REAL b1 st
      b2 c= b4 & b3 c= b4;

:: EUCLIDLP:th 102
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 // b3
   holds b2,b3 are_coplane;

:: EUCLIDLP:th 103
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2,b3 are_coplane & b2 misses b3
   holds ex b4 being Element of plane_of_REAL b1 st
      b2 c= b4 & b3 c= b4 & b4 is being_plane(b1);

:: EUCLIDLP:th 104
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds
   ex b4 being Element of plane_of_REAL b1 st
      b2 in b4 & b3 c= b4;

:: EUCLIDLP:th 105
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1)
   holds ex b4 being Element of plane_of_REAL b1 st
      b2 in b4 & b3 c= b4 & b4 is being_plane(b1);

:: EUCLIDLP:th 106
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
for b4 being Element of plane_of_REAL b1
      st b2 in b4 & b3 c= b4 & not b2 in b3 & b3 is being_line(b1)
   holds b4 is being_plane(b1);

:: EUCLIDLP:th 107
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1
for b4, b5 being Element of plane_of_REAL b1
      st not b2 in b3 & b3 is being_line(b1) & b2 in b4 & b3 c= b4 & b2 in b5 & b3 c= b5
   holds b4 = b5;

:: EUCLIDLP:th 108
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2,b3 are_coplane & b2 <> b3
   holds ex b4 being Element of plane_of_REAL b1 st
      b2 c= b4 & b3 c= b4 & b4 is being_plane(b1);

:: EUCLIDLP:th 109
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2 <> b3 & b2 meets b3
   holds ex b4 being Element of plane_of_REAL b1 st
      b2 c= b4 & b3 c= b4 & b4 is being_plane(b1);

:: EUCLIDLP:th 110
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
for b4, b5 being Element of plane_of_REAL b1
      st b2 is being_line(b1) & b3 is being_line(b1) & b2 <> b3 & b2 meets b3 & b2 c= b4 & b3 c= b4 & b2 c= b5 & b3 c= b5
   holds b4 = b5;

:: EUCLIDLP:th 111
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 // b3 & b2 <> b3
   holds ex b4 being Element of plane_of_REAL b1 st
      b2 c= b4 & b3 c= b4 & b4 is being_plane(b1);

:: EUCLIDLP:th 112
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2 _|_ b3 & b2 meets b3
   holds ex b4 being Element of plane_of_REAL b1 st
      b4 is being_plane(b1) & b2 c= b4 & b3 c= b4;

:: EUCLIDLP:th 113
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3, b4, b5 being Element of line_of_REAL b1
for b6 being Element of plane_of_REAL b1
      st b3 c= b6 & b4 c= b6 & b5 c= b6 & b2 in b3 & b2 in b4 & b2 in b5 & b3 _|_ b5 & b4 _|_ b5
   holds b3 = b4;

:: EUCLIDLP:th 114
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2,b3 are_coplane & b2 _|_ b3
   holds b2 meets b3;

:: EUCLIDLP:th 115
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3, b4, b5 being Element of line_of_REAL b1
for b6 being Element of plane_of_REAL b1
      st b3 c= b6 & b4 c= b6 & b3 _|_ b4 & b2 in b6 & b5 // b4 & b2 in b5
   holds b5 c= b6 & b5 _|_ b3;

:: EUCLIDLP:th 116
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of line_of_REAL b1
for b5 being Element of plane_of_REAL b1
      st b2 c= b5 & b3 c= b5 & b4 c= b5 & b2 _|_ b3 & b2 _|_ b4
   holds b3 // b4;

:: EUCLIDLP:th 117
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of line_of_REAL b1
for b6 being Element of plane_of_REAL b1
      st b2 c= b6 & b3 c= b6 & b4 c= b6 & b2 // b3 & b3 // b4 & b2 <> b3 & b3 <> b4 & b4 <> b2 & b5 meets b2 & b5 meets b3
   holds b5 meets b4;

:: EUCLIDLP:th 118
theorem
for b1 being Element of NAT
for b2, b3 being Element of line_of_REAL b1
      st b2,b3 are_coplane & b2 is being_line(b1) & b3 is being_line(b1) & b2 misses b3
   holds b2 // b3;

:: EUCLIDLP:th 119
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
for b6 being Element of plane_of_REAL b1
      st b2 in b6 & b3 in b6 & b4 in b6 & b5 in b6 & b3 - b2,b5 - b4 are_lindependent2
   holds Line(b2,b3) meets Line(b4,b5);