Article EUCLID_4, MML version 4.99.1005
:: EUCLID_4:th 1
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
(0 * b2) + b2 = b2 & b2 + 0* b1 = b2;
:: EUCLID_4:th 2
theorem
for b1 being Element of REAL
for b2 being Element of NAT holds
b1 * 0* b2 = 0* b2;
:: EUCLID_4:th 3
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
1 * b2 = b2 & 0 * b2 = 0* b1;
:: EUCLID_4:th 4
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 * (b2 * b4);
:: EUCLID_4:th 5
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3 being Element of REAL b2
st b1 * b3 = 0* b2 & b1 <> 0
holds b3 = 0* b2;
:: EUCLID_4:th 6
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);
:: EUCLID_4:th 7
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);
:: EUCLID_4:th 8
theorem
for b1 being Element of REAL
for b2 being Element of NAT
for b3, b4 being Element of REAL b2
st b1 * b3 = b1 * b4 & b1 <> 0
holds b3 = b4;
:: EUCLID_4:funcnot 1 => EUCLID_4:func 1
definition
let a1 be Element of NAT;
let a2, a3 be Element of REAL a1;
func Line(A2,A3) -> Element of bool REAL a1 equals
{((1 - b1) * a2) + (b1 * a3) where b1 is Element of REAL: TRUE};
end;
:: EUCLID_4:def 1
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
Line(b2,b3) = {((1 - b4) * b2) + (b4 * b3) where b4 is Element of REAL: TRUE};
:: EUCLID_4:funcreg 1
registration
let a1 be Element of NAT;
let a2, a3 be Element of REAL a1;
cluster Line(a2,a3) -> non empty;
end;
:: EUCLID_4:th 9
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
Line(b2,b3) = Line(b3,b2);
:: EUCLID_4:funcnot 2 => EUCLID_4:func 2
definition
let a1 be Element of NAT;
let a2, a3 be Element of REAL a1;
redefine func Line(a2,a3) -> Element of bool REAL a1;
commutativity;
:: for a1 being Element of NAT
:: for a2, a3 being Element of REAL a1 holds
:: Line(a2,a3) = Line(a3,a2);
end;
:: EUCLID_4:th 10
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
b2 in Line(b2,b3) & b3 in Line(b2,b3);
:: EUCLID_4:th 11
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
st b2 in Line(b3,b4) & b5 in Line(b3,b4)
holds Line(b2,b5) c= Line(b3,b4);
:: EUCLID_4:th 12
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1
st b2 in Line(b3,b4) & b5 in Line(b3,b4) & b2 <> b5
holds Line(b3,b4) c= Line(b2,b5);
:: EUCLID_4:attrnot 1 => EUCLID_4:attr 1
definition
let a1 be Element of NAT;
let a2 be Element of bool REAL a1;
attr a2 is being_line means
ex b1, b2 being Element of REAL a1 st
b1 <> b2 & a2 = Line(b1,b2);
end;
:: EUCLID_4:dfs 2
definiens
let a1 be Element of NAT;
let a2 be Element of bool REAL a1;
To prove
a2 is being_line
it is sufficient to prove
thus ex b1, b2 being Element of REAL a1 st
b1 <> b2 & a2 = Line(b1,b2);
:: EUCLID_4:def 2
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1 holds
b2 is being_line(b1)
iff
ex b3, b4 being Element of REAL b1 st
b3 <> b4 & b2 = Line(b3,b4);
:: EUCLID_4:prednot 1 => EUCLID_4:attr 1
notation
let a1 be Element of NAT;
let a2 be Element of bool REAL a1;
synonym a2 is_line for being_line;
end;
:: EUCLID_4:th 13
theorem
for b1 being Element of NAT
for b2, b3 being Element of bool REAL b1
for b4, b5 being Element of REAL b1
st b2 is being_line(b1) & b3 is being_line(b1) & b4 in b2 & b5 in b2 & b4 in b3 & b5 in b3 & b4 <> b5
holds b2 = b3;
:: EUCLID_4:th 14
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL b1
st b2 is being_line(b1)
holds ex b3, b4 being Element of REAL b1 st
b3 in b2 & b4 in b2 & b3 <> b4;
:: EUCLID_4:th 15
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1
for b3 being Element of bool REAL b1
st b3 is being_line(b1)
holds ex b4 being Element of REAL b1 st
b2 <> b4 & b4 in b3;
:: EUCLID_4:th 20
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
|.b2.| = sqrt |(b2,b2)|;
:: EUCLID_4:th 21
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
|(b2,b2)| = 0
iff
|.b2.| = 0;
:: EUCLID_4:th 22
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
|(b2,b2)| = 0
iff
b2 = 0* b1;
:: EUCLID_4:th 23
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
|(b2,0* b1)| = 0;
:: EUCLID_4:th 24
theorem
for b1 being Element of NAT
for b2 being Element of REAL b1 holds
|(0* b1,b2)| = 0;
:: EUCLID_4:th 25
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
|(b2 + b3,b4)| = |(b2,b4)| + |(b3,b4)|;
:: EUCLID_4:th 26
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being real set holds
|(b4 * b2,b3)| = b4 * |(b2,b3)|;
:: EUCLID_4:th 27
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1
for b4 being real set holds
|(b2,b4 * b3)| = b4 * |(b2,b3)|;
:: EUCLID_4:th 28
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|(- b2,b3)| = - |(b2,b3)|;
:: EUCLID_4:th 29
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|(b2,- b3)| = - |(b2,b3)|;
:: EUCLID_4:th 30
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|(- b2,- b3)| = |(b2,b3)|;
:: EUCLID_4:th 31
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
|(b2 - b3,b4)| = |(b2,b4)| - |(b3,b4)|;
:: EUCLID_4:th 32
theorem
for b1 being Element of NAT
for b2, b3 being real set
for b4, b5, b6 being Element of REAL b1 holds
|((b2 * b4) + (b3 * b5),b6)| = (b2 * |(b4,b6)|) + (b3 * |(b5,b6)|);
:: EUCLID_4:th 33
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
|(b2,b3 + b4)| = |(b2,b3)| + |(b2,b4)|;
:: EUCLID_4:th 34
theorem
for b1 being Element of NAT
for b2, b3, b4 being Element of REAL b1 holds
|(b2,b3 - b4)| = |(b2,b3)| - |(b2,b4)|;
:: EUCLID_4:th 35
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
|(b2 + b3,b4 + b5)| = ((|(b2,b4)| + |(b2,b5)|) + |(b3,b4)|) + |(b3,b5)|;
:: EUCLID_4:th 36
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of REAL b1 holds
|(b2 - b3,b4 - b5)| = ((|(b2,b4)| - |(b2,b5)|) - |(b3,b4)|) + |(b3,b5)|;
:: EUCLID_4:th 37
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|(b2 + b3,b2 + b3)| = (|(b2,b2)| + (2 * |(b2,b3)|)) + |(b3,b3)|;
:: EUCLID_4:th 38
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|(b2 - b3,b2 - b3)| = (|(b2,b2)| - (2 * |(b2,b3)|)) + |(b3,b3)|;
:: EUCLID_4:th 39
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|.b2 + b3.| ^2 = (|.b2.| ^2 + (2 * |(b2,b3)|)) + (|.b3.| ^2);
:: EUCLID_4:th 40
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|.b2 - b3.| ^2 = (|.b2.| ^2 - (2 * |(b2,b3)|)) + (|.b3.| ^2);
:: EUCLID_4:th 41
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|.b2 + b3.| ^2 + (|.b2 - b3.| ^2) = 2 * (|.b2.| ^2 + (|.b3.| ^2));
:: EUCLID_4:th 42
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|.b2 + b3.| ^2 - (|.b2 - b3.| ^2) = 4 * |(b2,b3)|;
:: EUCLID_4:th 43
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
abs |(b2,b3)| <= |.b2.| * |.b3.|;
:: EUCLID_4:th 44
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
|.b2 + b3.| <= |.b2.| + |.b3.|;
:: EUCLID_4:prednot 2 => EUCLID_4:pred 1
definition
let a1 be Element of NAT;
let a2, a3 be Element of REAL a1;
pred A2,A3 are_orthogonal means
|(a2,a3)| = 0;
symmetry;
:: for a1 being Element of NAT
:: for a2, a3 being Element of REAL a1
:: st a2,a3 are_orthogonal
:: holds a3,a2 are_orthogonal;
end;
:: EUCLID_4:dfs 3
definiens
let a1 be Element of NAT;
let a2, a3 be Element of REAL a1;
To prove
a2,a3 are_orthogonal
it is sufficient to prove
thus |(a2,a3)| = 0;
:: EUCLID_4:def 6
theorem
for b1 being Element of NAT
for b2, b3 being Element of REAL b1 holds
b2,b3 are_orthogonal
iff
|(b2,b3)| = 0;
:: EUCLID_4:th 45
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL
for b3, b4, b5 being Element of REAL b1
st b2 = {|.b5 - b6.| where b6 is Element of REAL b1: b6 in Line(b3,b4)}
holds ex b6 being Element of REAL b1 st
b6 in Line(b3,b4) & |.b5 - b6.| = lower_bound b2 & b3 - b4,b5 - b6 are_orthogonal;
:: EUCLID_4:funcnot 3 => EUCLID_4:func 3
definition
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
func Line(A2,A3) -> Element of bool the carrier of TOP-REAL a1 equals
{((1 - b1) * a2) + (b1 * a3) where b1 is Element of REAL: TRUE};
end;
:: EUCLID_4:def 7
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
Line(b2,b3) = {((1 - b4) * b2) + (b4 * b3) where b4 is Element of REAL: TRUE};
:: EUCLID_4:funcreg 2
registration
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
cluster Line(a2,a3) -> non empty;
end;
:: EUCLID_4:th 46
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
Line(b2,b3) = Line(b3,b2);
:: EUCLID_4:funcnot 4 => EUCLID_4:func 4
definition
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
redefine func Line(a2,a3) -> Element of bool the carrier of TOP-REAL a1;
commutativity;
:: for a1 being Element of NAT
:: for a2, a3 being Element of the carrier of TOP-REAL a1 holds
:: Line(a2,a3) = Line(a3,a2);
end;
:: EUCLID_4:th 47
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
b2 in Line(b2,b3) & b3 in Line(b2,b3);
:: EUCLID_4:th 48
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of the carrier of TOP-REAL b1
st b2 in Line(b3,b4) & b5 in Line(b3,b4)
holds Line(b2,b5) c= Line(b3,b4);
:: EUCLID_4:th 49
theorem
for b1 being Element of NAT
for b2, b3, b4, b5 being Element of the carrier of TOP-REAL b1
st b2 in Line(b3,b4) & b5 in Line(b3,b4) & b2 <> b5
holds Line(b3,b4) c= Line(b2,b5);
:: EUCLID_4:attrnot 2 => EUCLID_4:attr 2
definition
let a1 be Element of NAT;
let a2 be Element of bool the carrier of TOP-REAL a1;
attr a2 is being_line means
ex b1, b2 being Element of the carrier of TOP-REAL a1 st
b1 <> b2 & a2 = Line(b1,b2);
end;
:: EUCLID_4:dfs 5
definiens
let a1 be Element of NAT;
let a2 be Element of bool the carrier of TOP-REAL a1;
To prove
a2 is being_line
it is sufficient to prove
thus ex b1, b2 being Element of the carrier of TOP-REAL a1 st
b1 <> b2 & a2 = Line(b1,b2);
:: EUCLID_4:def 8
theorem
for b1 being Element of NAT
for b2 being Element of bool the carrier of TOP-REAL b1 holds
b2 is being_line(b1)
iff
ex b3, b4 being Element of the carrier of TOP-REAL b1 st
b3 <> b4 & b2 = Line(b3,b4);
:: EUCLID_4:prednot 3 => EUCLID_4:attr 2
notation
let a1 be Element of NAT;
let a2 be Element of bool the carrier of TOP-REAL a1;
synonym a2 is_line for being_line;
end;
:: EUCLID_4:th 50
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1
for b4, b5 being Element of bool the carrier of TOP-REAL b1
st b4 is being_line(b1) & b5 is being_line(b1) & b2 in b4 & b3 in b4 & b2 in b5 & b3 in b5 & b2 <> b3
holds b4 = b5;
:: EUCLID_4:th 51
theorem
for b1 being Element of NAT
for b2 being Element of bool the carrier of TOP-REAL b1
st b2 is being_line(b1)
holds ex b3, b4 being Element of the carrier of TOP-REAL b1 st
b3 in b2 & b4 in b2 & b3 <> b4;
:: EUCLID_4:th 52
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL b1
for b3 being Element of bool the carrier of TOP-REAL b1
st b3 is being_line(b1)
holds ex b4 being Element of the carrier of TOP-REAL b1 st
b2 <> b4 & b4 in b3;
:: EUCLID_4:funcnot 5 => EUCLID_4:func 5
definition
let a1 be Element of NAT;
let a2 be Element of the carrier of TOP-REAL a1;
func TPn2Rn A2 -> Element of REAL a1 equals
a2;
end;
:: EUCLID_4:def 9
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of TOP-REAL b1 holds
TPn2Rn b2 = b2;
:: EUCLID_4:funcnot 6 => EUCLID_4:func 6
definition
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
func |(A2,A3)| -> Element of REAL equals
|(TPn2Rn a2,TPn2Rn a3)|;
commutativity;
:: for a1 being Element of NAT
:: for a2, a3 being Element of the carrier of TOP-REAL a1 holds
:: |(a2,a3)| = |(a3,a2)|;
end;
:: EUCLID_4:def 11
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
|(b2,b3)| = |(TPn2Rn b2,TPn2Rn b3)|;
:: EUCLID_4:prednot 4 => EUCLID_4:pred 2
definition
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
pred A2,A3 are_orthogonal means
|(a2,a3)| = 0;
symmetry;
:: for a1 being Element of NAT
:: for a2, a3 being Element of the carrier of TOP-REAL a1
:: st a2,a3 are_orthogonal
:: holds a3,a2 are_orthogonal;
end;
:: EUCLID_4:dfs 8
definiens
let a1 be Element of NAT;
let a2, a3 be Element of the carrier of TOP-REAL a1;
To prove
a2,a3 are_orthogonal
it is sufficient to prove
thus |(a2,a3)| = 0;
:: EUCLID_4:def 12
theorem
for b1 being Element of NAT
for b2, b3 being Element of the carrier of TOP-REAL b1 holds
b2,b3 are_orthogonal
iff
|(b2,b3)| = 0;
:: EUCLID_4:th 53
theorem
for b1 being Element of NAT
for b2 being Element of bool REAL
for b3, b4, b5 being Element of the carrier of TOP-REAL b1
st b2 = {|.b5 - b6.| where b6 is Element of the carrier of TOP-REAL b1: b6 in Line(b3,b4)}
holds ex b6 being Element of the carrier of TOP-REAL b1 st
b6 in Line(b3,b4) & |.b5 - b6.| = lower_bound b2 & b3 - b4,b5 - b6 are_orthogonal;