:: EUCLIDLP semantic presentation

theorem Th1: :: EUCLIDLP:1
for b1, b2, b3 being Real
for b4 being Nat
for b5 being Element of REAL b4 holds
( (b1 / b2) * (b3 * b5) = ((b1 * b3) / b2) * b5 & (1 / b2) * (b3 * b5) = (b3 / b2) * b5 )
proof end;

theorem Th2: :: EUCLIDLP:2
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds b2 + (b3 + b4) = (b2 + b3) + b4
proof end;

theorem Th3: :: EUCLIDLP:3
for b1 being Nat
for b2 being Element of REAL b1 holds b2 - (0* b1) = b2
proof end;

theorem Th4: :: EUCLIDLP:4
for b1 being Nat
for b2 being Element of REAL b1 holds (0* b1) - b2 = - b2
proof end;

theorem Th5: :: EUCLIDLP:5
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds b2 - (b3 + b4) = (b2 - b3) - b4
proof end;

theorem Th6: :: EUCLIDLP:6
for b1 being Nat
for b2, b3 being Element of REAL b1 holds b2 - b3 = b2 + (- b3)
proof end;

theorem Th7: :: EUCLIDLP:7
for b1 being Nat
for b2 being Element of REAL b1 holds
( b2 - b2 = 0* b1 & b2 + (- b2) = 0* b1 )
proof end;

Lemma8: for b1 being Nat
for b2 being Element of REAL b1 holds (- 1) * b2 = - b2
proof end;

theorem Th8: :: EUCLIDLP:8
for b1 being Real
for b2 being Nat
for b3 being Element of REAL b2 holds
( - (b1 * b3) = (- b1) * b3 & - (b1 * b3) = b1 * (- b3) )
proof end;

theorem Th9: :: EUCLIDLP:9
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds b2 - (b3 - b4) = (b2 - b3) + b4
proof end;

theorem Th10: :: EUCLIDLP:10
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds b2 + (b3 - b4) = (b2 + b3) - b4
proof end;

theorem Th11: :: EUCLIDLP:11
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds
( b2 = b3 + b4 iff b3 = b2 - b4 )
proof end;

theorem Th12: :: EUCLIDLP:12
for b1 being Nat
for b2, b3, b4, b5 being Element of REAL b1 holds
( b2 = (b3 + b4) + b5 iff b2 - b3 = b4 + b5 )
proof end;

theorem Th13: :: EUCLIDLP:13
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds - ((b2 + b3) + b4) = ((- b2) + (- b3)) + (- b4)
proof end;

Lemma15: for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 <> b3 holds
|.(b2 - b3).| <> 0
proof end;

theorem Th14: :: EUCLIDLP:14
for b1 being Nat
for b2, b3 being Element of REAL b1 holds
( b2 = b3 iff b2 - b3 = 0* b1 )
proof end;

theorem Th15: :: EUCLIDLP:15
for b1 being Real
for b2 being Nat
for b3, b4, b5 being Element of REAL b2 st b3 - b4 = b1 * b5 & b3 <> b4 holds
b1 <> 0
proof end;

theorem Th16: :: EUCLIDLP:16
for b1, b2 being Real
for b3 being 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) )
proof end;

theorem Th17: :: EUCLIDLP:17
for b1 being Real
for b2 being 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) )
proof end;

theorem Th18: :: EUCLIDLP:18
for b1, b2, b3 being Real
for b4 being Nat
for b5 being Element of REAL b4 holds ((b1 - b2) - b3) * b5 = ((b1 * b5) - (b2 * b5)) - (b3 * b5)
proof end;

theorem Th19: :: EUCLIDLP:19
for b1, b2, b3 being Real
for b4 being 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))
proof end;

theorem Th20: :: EUCLIDLP:20
for b1, b2, b3 being Real
for b4 being Nat
for b5, b6 being Element of REAL b4 holds b5 - (((b1 + b2) + b3) * b6) = ((b5 + ((- b1) * b6)) + ((- b2) * b6)) + ((- b3) * b6)
proof end;

theorem Th21: :: EUCLIDLP:21
for b1 being Nat
for b2, b3, b4, b5 being Element of REAL b1 holds (b2 + b3) + (b4 + b5) = (b2 + b4) + (b3 + b5)
proof end;

theorem Th22: :: EUCLIDLP:22
for b1 being 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)
proof end;

theorem Th23: :: EUCLIDLP:23
for b1 being Nat
for b2, b3, b4, b5 being Element of REAL b1 holds (b2 + b3) - (b4 + b5) = (b2 - b4) + (b3 - b5)
proof end;

theorem Th24: :: EUCLIDLP:24
for b1 being 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)
proof end;

theorem Th25: :: EUCLIDLP:25
for b1 being Real
for b2 being Nat
for b3, b4, b5 being Element of REAL b2 holds b1 * ((b3 + b4) + b5) = ((b1 * b3) + (b1 * b4)) + (b1 * b5)
proof end;

theorem Th26: :: EUCLIDLP:26
for b1, b2, b3 being Real
for b4 being Nat
for b5, b6 being Element of REAL b4 holds b1 * ((b2 * b5) + (b3 * b6)) = ((b1 * b2) * b5) + ((b1 * b3) * b6)
proof end;

theorem Th27: :: EUCLIDLP:27
for b1, b2, b3, b4 being Real
for b5 being 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)
proof end;

theorem Th28: :: EUCLIDLP:28
for b1, b2, b3, b4 being Real
for b5 being Nat
for b6, b7 being Element of REAL b5 holds ((b1 * b6) + (b2 * b7)) + ((b3 * b6) + (b4 * b7)) = ((b1 + b3) * b6) + ((b2 + b4) * b7)
proof end;

theorem Th29: :: EUCLIDLP:29
for b1, b2, b3, b4, b5, b6 being Real
for b7 being 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)
proof end;

theorem Th30: :: EUCLIDLP:30
for b1, b2, b3, b4 being Real
for b5 being Nat
for b6, b7 being Element of REAL b5 holds ((b1 * b6) + (b2 * b7)) - ((b3 * b6) + (b4 * b7)) = ((b1 - b3) * b6) + ((b2 - b4) * b7)
proof end;

theorem Th31: :: EUCLIDLP:31
for b1, b2, b3, b4, b5, b6 being Real
for b7 being 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)
proof end;

theorem Th32: :: EUCLIDLP:32
for b1, b2, b3 being Real
for b4 being 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))
proof end;

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

theorem Th34: :: EUCLIDLP:34
for b1 being Nat st b1 >= 1 holds
1* b1 <> 0* b1
proof end;

theorem Th35: :: EUCLIDLP:35
for b1 being Nat
for b2 being Subset of (REAL b1)
for b3, b4 being Element of REAL b1 st b2 is_line & b3 in b2 & b4 in b2 & b3 <> b4 holds
b2 = Line b3,b4
proof end;

theorem Th36: :: EUCLIDLP:36
for b1 being 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 Real st b3 - b2 = b6 * (b5 - b4)
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of REAL c1;
pred c2 // c3 means :Def1: :: EUCLIDLP:def 1
( a2 <> 0* a1 & a3 <> 0* a1 & ex b1 being Real st a2 = b1 * a3 );
end;

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

theorem Th37: :: EUCLIDLP:37
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 // b3 holds
ex b4 being Real st
( b4 <> 0 & b2 = b4 * b3 )
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of REAL c1;
redefine pred // as c2 // c3;
symmetry
for b1, b2 being Element of REAL c1 st b1 // b2 holds
b2 // b1
proof end;
end;

theorem Th38: :: EUCLIDLP:38
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 st b2 // b3 & b3 // b4 holds
b2 // b4
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of REAL c1;
pred c2,c3 are_lindependent2 means :Def2: :: EUCLIDLP:def 2
for b1, b2 being Real st (b1 * a2) + (b2 * a3) = 0* a1 holds
( b1 = 0 & b2 = 0 );
symmetry
for b1, b2 being Element of REAL c1 st ( for b3, b4 being Real st (b3 * b1) + (b4 * b2) = 0* c1 holds
( b3 = 0 & b4 = 0 ) ) holds
for b3, b4 being Real st (b3 * b2) + (b4 * b1) = 0* c1 holds
( b3 = 0 & b4 = 0 )
;
end;

:: deftheorem Def2 defines are_lindependent2 EUCLIDLP:def 2 :
for b1 being Nat
for b2, b3 being Element of REAL b1 holds
( b2,b3 are_lindependent2 iff for b4, b5 being Real st (b4 * b2) + (b5 * b3) = 0* b1 holds
( b4 = 0 & b5 = 0 ) );

notation
let c1 be Nat;
let c2, c3 be Element of REAL c1;
antonym c2,c3 are_ldependent2 for c2,c3 are_lindependent2 ;
end;

Lemma40: for b1 being Nat
for b2, b3 being Element of REAL b1 st b2,b3 are_lindependent2 holds
b2 <> 0* b1
proof end;

theorem Th39: :: EUCLIDLP:39
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2,b3 are_lindependent2 holds
( b2 <> 0* b1 & b3 <> 0* b1 ) by Lemma40;

theorem Th40: :: EUCLIDLP:40
for b1, b2, b3, b4 being Real
for b5 being 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 )
proof end;

theorem Th41: :: EUCLIDLP:41
for b1, b2, b3, b4 being Real
for b5 being 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 Real st
( b7 = (b11 * b10) + (b12 * b6) & b8 = (b13 * b10) + (b14 * b6) )
proof end;

theorem Th42: :: EUCLIDLP:42
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2,b3 are_lindependent2 holds
b2 <> b3
proof end;

theorem Th43: :: EUCLIDLP:43
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 st b2 - b3,b4 - b3 are_lindependent2 holds
b2 <> b4 by Th42;

theorem Th44: :: EUCLIDLP:44
for b1 being Real
for b2 being Nat
for b3, b4 being Element of REAL b2 st b3,b4 are_lindependent2 holds
b3 + (b1 * b4),b4 are_lindependent2
proof end;

theorem Th45: :: EUCLIDLP:45
for b1 being 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
proof end;

Lemma45: for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 // b3 holds
b2,b3 are_ldependent2
proof end;

theorem Th46: :: EUCLIDLP:46
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 // b3 holds
( b2,b3 are_ldependent2 & b2 <> 0* b1 & b3 <> 0* b1 ) by Def1, Lemma45;

Lemma46: for b1 being Nat
for b2, b3 being Element of REAL b1 st b2,b3 are_ldependent2 & b2 <> 0* b1 & b3 <> 0* b1 holds
b2 // b3
proof end;

theorem Th47: :: EUCLIDLP:47
for b1 being Nat
for b2, b3 being Element of REAL b1 holds
( not b2,b3 are_ldependent2 or b2 = 0* b1 or b3 = 0* b1 or b2 // b3 ) by Lemma46;

theorem Th48: :: EUCLIDLP:48
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 ex b5 being Element of REAL b1 st
( b5 in Line b2,b3 & b2 - b3,b4 - b5 are_orthogonal )
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of REAL c1;
pred c2 _|_ c3 means :Def3: :: EUCLIDLP:def 3
( a2 <> 0* a1 & a3 <> 0* a1 & a2,a3 are_orthogonal );
symmetry
for b1, b2 being Element of REAL c1 st b1 <> 0* c1 & b2 <> 0* c1 & b1,b2 are_orthogonal holds
( b2 <> 0* c1 & b1 <> 0* c1 & b2,b1 are_orthogonal )
;
end;

:: deftheorem Def3 defines _|_ EUCLIDLP:def 3 :
for b1 being Nat
for b2, b3 being Element of REAL b1 holds
( b2 _|_ b3 iff ( b2 <> 0* b1 & b3 <> 0* b1 & b2,b3 are_orthogonal ) );

theorem Th49: :: EUCLIDLP:49
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 st b2 _|_ b3 & b3 // b4 holds
b2 _|_ b4
proof end;

theorem Th50: :: EUCLIDLP:50
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 _|_ b3 holds
b2,b3 are_lindependent2
proof end;

theorem Th51: :: EUCLIDLP:51
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 // b3 holds
not b2 _|_ b3
proof end;

theorem Th52: :: EUCLIDLP:52
for b1 being Nat
for b2, b3 being Element of REAL b1 st b2 _|_ b3 holds
not b2 // b3 by Th51;

definition
let c1 be Nat;
func line_of_REAL c1 -> Subset-Family of (REAL a1) equals :: EUCLIDLP:def 4
{ b1 where B is Subset of (REAL a1) : ex b1, b2 being Element of REAL a1 st b1 = Line b2,b3 } ;
correctness
coherence
{ b1 where B is Subset of (REAL c1) : ex b1, b2 being Element of REAL c1 st b1 = Line b2,b3 } is Subset-Family of (REAL c1)
;
proof end;
end;

:: deftheorem Def4 defines line_of_REAL EUCLIDLP:def 4 :
for b1 being Nat holds line_of_REAL b1 = { b2 where B is Subset of (REAL b1) : ex b1, b2 being Element of REAL b1 st b2 = Line b3,b4 } ;

registration
let c1 be Nat;
cluster line_of_REAL a1 -> non empty ;
coherence
not line_of_REAL c1 is empty
proof end;
end;

theorem Th53: :: EUCLIDLP:53
for b1 being Nat
for b2, b3 being Element of REAL b1 holds Line b2,b3 in line_of_REAL b1 ;

theorem Th54: :: EUCLIDLP:54
for b1 being 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
proof end;

theorem Th55: :: EUCLIDLP:55
for b1 being 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 ) )
proof end;

theorem Th56: :: EUCLIDLP:56
for b1 being 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 by Th55;

theorem Th57: :: EUCLIDLP:57
for b1 being Nat
for b2 being Element of line_of_REAL b1 ex b3, b4 being Element of REAL b1 st b2 = Line b3,b4
proof end;

theorem Th58: :: EUCLIDLP:58
for b1 being Nat
for b2 being Element of line_of_REAL b1 ex b3 being Element of REAL b1 st b3 in b2
proof end;

theorem Th59: :: EUCLIDLP:59
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st b2 in b3 & b3 is_line holds
ex b4 being Element of REAL b1 st
( b4 <> b2 & b4 in b3 )
proof end;

theorem Th60: :: EUCLIDLP:60
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st not b2 in b3 & b3 is_line holds
ex b4, b5 being Element of REAL b1 st
( b3 = Line b4,b5 & b2 - b4 _|_ b5 - b4 )
proof end;

theorem Th61: :: EUCLIDLP:61
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st not b2 in b3 & b3 is_line holds
ex b4, b5 being Element of REAL b1 st
( b3 = Line b4,b5 & b2 - b4,b5 - b4 are_lindependent2 )
proof end;

definition
let c1 be Nat;
let c2 be Element of REAL c1;
let c3 be Element of line_of_REAL c1;
func dist_v c2,c3 -> Subset of REAL equals :: EUCLIDLP:def 5
{ |.(a2 - b1).| where B is Element of REAL a1 : b1 in a3 } ;
correctness
coherence
{ |.(c2 - b1).| where B is Element of REAL c1 : b1 in c3 } is Subset of REAL
;
proof end;
end;

:: deftheorem Def5 defines dist_v EUCLIDLP:def 5 :
for b1 being 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 B is Element of REAL b1 : b4 in b3 } ;

definition
let c1 be Nat;
let c2 be Element of REAL c1;
let c3 be Element of line_of_REAL c1;
func dist c2,c3 -> Real equals :: EUCLIDLP:def 6
lower_bound (dist_v a2,a3);
correctness
coherence
lower_bound (dist_v c2,c3) is Real
;
;
end;

:: deftheorem Def6 defines dist EUCLIDLP:def 6 :
for b1 being 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);

theorem Th62: :: EUCLIDLP:62
for b1 being 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 B is Element of REAL b1 : b6 in Line b2,b3 } = dist_v b4,b5 ;

theorem Th63: :: EUCLIDLP:63
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 ex b4 being Element of REAL b1 st
( b4 in b3 & |.(b2 - b4).| = dist b2,b3 )
proof end;

theorem Th64: :: EUCLIDLP:64
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 holds dist b2,b3 >= 0
proof end;

theorem Th65: :: EUCLIDLP:65
for b1 being 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 )
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of line_of_REAL c1;
pred c2 // c3 means :Def7: :: EUCLIDLP:def 7
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 b1, b2 being Element of line_of_REAL c1 st ex b3, b4, b5, b6 being Element of REAL c1 st
( b1 = Line b3,b4 & b2 = Line b5,b6 & b4 - b3 // b6 - b5 ) holds
ex b3, b4, b5, b6 being Element of REAL c1 st
( b2 = Line b3,b4 & b1 = Line b5,b6 & b4 - b3 // b6 - b5 )
;
end;

:: deftheorem Def7 defines // EUCLIDLP:def 7 :
for b1 being 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 ) );

theorem Th66: :: EUCLIDLP:66
for b1 being Nat
for b2, b3, b4 being Element of line_of_REAL b1 st b2 // b3 & b3 // b4 holds
b2 // b4
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of line_of_REAL c1;
pred c2 _|_ c3 means :Def8: :: EUCLIDLP:def 8
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 b1, b2 being Element of line_of_REAL c1 st ex b3, b4, b5, b6 being Element of REAL c1 st
( b1 = Line b3,b4 & b2 = Line b5,b6 & b4 - b3 _|_ b6 - b5 ) holds
ex b3, b4, b5, b6 being Element of REAL c1 st
( b2 = Line b3,b4 & b1 = Line b5,b6 & b4 - b3 _|_ b6 - b5 )
;
end;

:: deftheorem Def8 defines _|_ EUCLIDLP:def 8 :
for b1 being 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 ) );

theorem Th67: :: EUCLIDLP:67
for b1 being Nat
for b2, b3, b4 being Element of line_of_REAL b1 st b2 _|_ b3 & b3 // b4 holds
b2 _|_ b4
proof end;

theorem Th68: :: EUCLIDLP:68
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st not b2 in b3 & b3 is_line holds
ex b4 being Element of line_of_REAL b1 st
( b2 in b4 & b4 _|_ b3 & b4 meets b3 )
proof end;

theorem Th69: :: EUCLIDLP:69
for b1 being 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 )
proof end;

theorem Th70: :: EUCLIDLP:70
for b1 being 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_line )
proof end;

theorem Th71: :: EUCLIDLP:71
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 is_line & b3 is_line & b2 = b3 holds
b2 // b3
proof end;

theorem Th72: :: EUCLIDLP:72
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 // b3 holds
( b2 is_line & b3 is_line )
proof end;

theorem Th73: :: EUCLIDLP:73
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 _|_ b3 holds
( b2 is_line & b3 is_line )
proof end;

theorem Th74: :: EUCLIDLP:74
for b1 being Real
for b2 being 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
proof end;

theorem Th75: :: EUCLIDLP:75
for b1 being Real
for b2 being 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) )
proof end;

theorem Th76: :: EUCLIDLP:76
for b1 being 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 Real st b4 - b2 = b6 * (b3 - b2)
proof end;

theorem Th77: :: EUCLIDLP:77
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 // b3 & b2 <> b3 holds
b2 misses b3
proof end;

theorem Th78: :: EUCLIDLP:78
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 holds
( not b2 // b3 or b2 = b3 or b2 misses b3 ) by Th77;

theorem Th79: :: EUCLIDLP:79
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 // b3 & b2 meets b3 holds
b2 = b3 by Th77;

theorem Th80: :: EUCLIDLP:80
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st b3 is_line holds
ex b4 being Element of line_of_REAL b1 st
( b2 in b4 & b4 // b3 )
proof end;

theorem Th81: :: EUCLIDLP:81
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st not b2 in b3 & b3 is_line holds
ex b4 being Element of line_of_REAL b1 st
( b2 in b4 & b4 // b3 & b4 <> b3 )
proof end;

theorem Th82: :: EUCLIDLP:82
for b1 being 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
proof end;

theorem Th83: :: EUCLIDLP:83
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 _|_ b3 holds
b2 <> b3
proof end;

theorem Th84: :: EUCLIDLP:84
for b1 being Nat
for b2, b3 being Element of REAL b1
for b4 being Element of line_of_REAL b1 st b4 is_line & b4 = Line b2,b3 holds
b2 <> b3
proof end;

theorem Th85: :: EUCLIDLP:85
for b1 being 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
proof end;

theorem Th86: :: EUCLIDLP:86
for b1 being 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 Real st
( b9 <> 0 & b5 - b3 = b9 * (b2 - b3) & b6 - b3 = b9 * (b4 - b3) ) )
proof end;

theorem Th87: :: EUCLIDLP:87
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 is_line & b3 is_line & b2 <> b3 holds
ex b4 being Element of REAL b1 st
( b4 in b2 & not b4 in b3 )
proof end;

theorem Th88: :: EUCLIDLP:88
for b1 being 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 )
proof end;

theorem Th89: :: EUCLIDLP:89
for b1 being 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 )
proof end;

definition
let c1 be Nat;
let c2, c3, c4 be Element of REAL c1;
func plane c2,c3,c4 -> Subset of (REAL a1) equals :: EUCLIDLP:def 9
{ b1 where B is Element of REAL a1 : ex b1, b2, b3 being Real st
( (b2 + b3) + b4 = 1 & b1 = ((b2 * a2) + (b3 * a3)) + (b4 * a4) )
}
;
correctness
coherence
{ b1 where B is Element of REAL c1 : ex b1, b2, b3 being Real st
( (b2 + b3) + b4 = 1 & b1 = ((b2 * c2) + (b3 * c3)) + (b4 * c4) )
}
is Subset of (REAL c1)
;
proof end;
end;

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

registration
let c1 be Nat;
let c2, c3, c4 be Element of REAL c1;
cluster plane a2,a3,a4 -> non empty ;
coherence
not plane c2,c3,c4 is empty
proof end;
end;

definition
let c1 be Nat;
let c2 be Subset of (REAL c1);
attr a2 is being_plane means :Def10: :: EUCLIDLP:def 10
ex b1, b2, b3 being Element of REAL a1 st
( b2 - b1,b3 - b1 are_lindependent2 & a2 = plane b1,b2,b3 );
end;

:: deftheorem Def10 defines being_plane EUCLIDLP:def 10 :
for b1 being Nat
for b2 being Subset of (REAL b1) holds
( b2 is being_plane iff ex b3, b4, b5 being Element of REAL b1 st
( b4 - b3,b5 - b3 are_lindependent2 & b2 = plane b3,b4,b5 ) );

theorem Th90: :: EUCLIDLP:90
for b1 being 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 )
proof end;

theorem Th91: :: EUCLIDLP:91
for b1 being 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
proof end;

theorem Th92: :: EUCLIDLP:92
for b1 being Nat
for b2 being Subset of (REAL b1)
for b3, b4, b5, b6 being Element of REAL b1 st b3 in plane b4,b5,b6 & ex b7, b8, b9 being Real st
( (b7 + b8) + b9 = 0 & b3 = ((b7 * b4) + (b8 * b5)) + (b9 * b6) ) holds
0* b1 in plane b4,b5,b6
proof end;

theorem Th93: :: EUCLIDLP:93
for b1 being 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
proof end;

theorem Th94: :: EUCLIDLP:94
for b1 being Nat
for b2 being Subset of (REAL b1)
for b3 being Element of REAL b1 st b2 is being_plane & b3 in b2 & ex b4 being Real st
( b4 <> 1 & b4 * b3 in b2 ) holds
0* b1 in b2
proof end;

theorem Th95: :: EUCLIDLP:95
for b1, b2, b3 being Real
for b4 being 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) & not (b1 + b2) + b3 = 1 holds
0* b4 in plane b5,b8,b6
proof end;

theorem Th96: :: EUCLIDLP:96
for b1 being Nat
for b2, b3, b4, b5 being Element of REAL b1 holds
( b2 in plane b3,b4,b5 iff ex b6, b7, b8 being Real st
( (b6 + b7) + b8 = 1 & b2 = ((b6 * b3) + (b7 * b4)) + (b8 * b5) ) )
proof end;

theorem Th97: :: EUCLIDLP:97
for b1, b2, b3, b4, b5, b6 being Real
for b7 being 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 )
proof end;

definition
let c1 be Nat;
func plane_of_REAL c1 -> Subset-Family of (REAL a1) equals :: EUCLIDLP:def 11
{ b1 where B is Subset of (REAL a1) : ex b1, b2, b3 being Element of REAL a1 st b1 = plane b2,b3,b4 } ;
correctness
coherence
{ b1 where B is Subset of (REAL c1) : ex b1, b2, b3 being Element of REAL c1 st b1 = plane b2,b3,b4 } is Subset-Family of (REAL c1)
;
proof end;
end;

:: deftheorem Def11 defines plane_of_REAL EUCLIDLP:def 11 :
for b1 being Nat holds plane_of_REAL b1 = { b2 where B is Subset of (REAL b1) : ex b1, b2, b3 being Element of REAL b1 st b2 = plane b3,b4,b5 } ;

registration
let c1 be Nat;
cluster plane_of_REAL a1 -> non empty ;
coherence
not plane_of_REAL c1 is empty
proof end;
end;

theorem Th98: :: EUCLIDLP:98
for b1 being Nat
for b2, b3, b4 being Element of REAL b1 holds plane b2,b3,b4 in plane_of_REAL b1 ;

theorem Th99: :: EUCLIDLP:99
for b1 being 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
proof end;

theorem Th100: :: EUCLIDLP:100
for b1 being 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
proof end;

theorem Th101: :: EUCLIDLP:101
for b1 being Nat
for b2, b3 being Element of plane_of_REAL b1 st b2 is being_plane & b2 c= b3 holds
b2 = b3
proof end;

theorem Th102: :: EUCLIDLP:102
for b1 being 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 )
proof end;

theorem Th103: :: EUCLIDLP:103
for b1 being 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
proof end;

definition
let c1 be Nat;
let c2, c3 be Element of line_of_REAL c1;
pred c2,c3 are_coplane means :Def12: :: EUCLIDLP:def 12
ex b1, b2, b3 being Element of REAL a1 st
( a2 c= plane b1,b2,b3 & a3 c= plane b1,b2,b3 );
end;

:: deftheorem Def12 defines are_coplane EUCLIDLP:def 12 :
for b1 being 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 ) );

theorem Th104: :: EUCLIDLP:104
for b1 being 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 ) )
proof end;

theorem Th105: :: EUCLIDLP:105
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 // b3 holds
b2,b3 are_coplane
proof end;

theorem Th106: :: EUCLIDLP:106
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 is_line & b3 is_line & 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 )
proof end;

theorem Th107: :: EUCLIDLP:107
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 ex b4 being Element of plane_of_REAL b1 st
( b2 in b4 & b3 c= b4 )
proof end;

theorem Th108: :: EUCLIDLP:108
for b1 being Nat
for b2 being Element of REAL b1
for b3 being Element of line_of_REAL b1 st not b2 in b3 & b3 is_line holds
ex b4 being Element of plane_of_REAL b1 st
( b2 in b4 & b3 c= b4 & b4 is being_plane )
proof end;

theorem Th109: :: EUCLIDLP:109
for b1 being 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_line holds
b4 is being_plane
proof end;

theorem Th110: :: EUCLIDLP:110
for b1 being 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_line & b2 in b4 & b3 c= b4 & b2 in b5 & b3 c= b5 holds
b4 = b5
proof end;

theorem Th111: :: EUCLIDLP:111
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 is_line & b3 is_line & 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 )
proof end;

theorem Th112: :: EUCLIDLP:112
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2 is_line & b3 is_line & 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 )
proof end;

theorem Th113: :: EUCLIDLP:113
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1
for b4, b5 being Element of plane_of_REAL b1 st b2 is_line & b3 is_line & b2 <> b3 & b2 meets b3 & b2 c= b4 & b3 c= b4 & b2 c= b5 & b3 c= b5 holds
b4 = b5
proof end;

theorem Th114: :: EUCLIDLP:114
for b1 being 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 )
proof end;

theorem Th115: :: EUCLIDLP:115
for b1 being 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 & b2 c= b4 & b3 c= b4 )
proof end;

theorem Th116: :: EUCLIDLP:116
for b1 being 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
proof end;

theorem Th117: :: EUCLIDLP:117
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2,b3 are_coplane & b2 _|_ b3 holds
b2 meets b3
proof end;

theorem Th118: :: EUCLIDLP:118
for b1 being 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 )
proof end;

theorem Th119: :: EUCLIDLP:119
for b1 being 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
proof end;

theorem Th120: :: EUCLIDLP:120
for b1 being 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
proof end;

theorem Th121: :: EUCLIDLP:121
for b1 being Nat
for b2, b3 being Element of line_of_REAL b1 st b2,b3 are_coplane & b2 is_line & b3 is_line & b2 misses b3 holds
b2 // b3
proof end;

theorem Th122: :: EUCLIDLP:122
for b1 being 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
proof end;