Article VECTMETR, MML version 4.99.1005
:: VECTMETR:attrnot 1 => VECTMETR:attr 1
definition
let a1 be non empty MetrStruct;
attr a1 is convex means
for b1, b2 being Element of the carrier of a1
for b3 being Element of REAL
st 0 <= b3 & b3 <= 1
holds ex b4 being Element of the carrier of a1 st
dist(b1,b4) = b3 * dist(b1,b2) &
dist(b4,b2) = (1 - b3) * dist(b1,b2);
end;
:: VECTMETR:dfs 1
definiens
let a1 be non empty MetrStruct;
To prove
a1 is convex
it is sufficient to prove
thus for b1, b2 being Element of the carrier of a1
for b3 being Element of REAL
st 0 <= b3 & b3 <= 1
holds ex b4 being Element of the carrier of a1 st
dist(b1,b4) = b3 * dist(b1,b2) &
dist(b4,b2) = (1 - b3) * dist(b1,b2);
:: VECTMETR:def 1
theorem
for b1 being non empty MetrStruct holds
b1 is convex
iff
for b2, b3 being Element of the carrier of b1
for b4 being Element of REAL
st 0 <= b4 & b4 <= 1
holds ex b5 being Element of the carrier of b1 st
dist(b2,b5) = b4 * dist(b2,b3) &
dist(b5,b3) = (1 - b4) * dist(b2,b3);
:: VECTMETR:attrnot 2 => VECTMETR:attr 2
definition
let a1 be non empty MetrStruct;
attr a1 is internal means
for b1, b2 being Element of the carrier of a1
for b3, b4 being Element of REAL
st 0 < b3 & 0 < b4
holds ex b5 being FinSequence of the carrier of a1 st
b5 /. 1 = b1 &
b5 /. len b5 = b2 &
(for b6 being Element of NAT
st 1 <= b6 & b6 <= (len b5) - 1
holds dist(b5 /. b6,b5 /. (b6 + 1)) < b3) &
(for b6 being FinSequence of REAL
st len b6 = (len b5) - 1 &
(for b7 being Element of NAT
st 1 <= b7 & b7 <= len b6
holds b6 /. b7 = dist(b5 /. b7,b5 /. (b7 + 1)))
holds abs ((dist(b1,b2)) - Sum b6) < b4);
end;
:: VECTMETR:dfs 2
definiens
let a1 be non empty MetrStruct;
To prove
a1 is internal
it is sufficient to prove
thus for b1, b2 being Element of the carrier of a1
for b3, b4 being Element of REAL
st 0 < b3 & 0 < b4
holds ex b5 being FinSequence of the carrier of a1 st
b5 /. 1 = b1 &
b5 /. len b5 = b2 &
(for b6 being Element of NAT
st 1 <= b6 & b6 <= (len b5) - 1
holds dist(b5 /. b6,b5 /. (b6 + 1)) < b3) &
(for b6 being FinSequence of REAL
st len b6 = (len b5) - 1 &
(for b7 being Element of NAT
st 1 <= b7 & b7 <= len b6
holds b6 /. b7 = dist(b5 /. b7,b5 /. (b7 + 1)))
holds abs ((dist(b1,b2)) - Sum b6) < b4);
:: VECTMETR:def 2
theorem
for b1 being non empty MetrStruct holds
b1 is internal
iff
for b2, b3 being Element of the carrier of b1
for b4, b5 being Element of REAL
st 0 < b4 & 0 < b5
holds ex b6 being FinSequence of the carrier of b1 st
b6 /. 1 = b2 &
b6 /. len b6 = b3 &
(for b7 being Element of NAT
st 1 <= b7 & b7 <= (len b6) - 1
holds dist(b6 /. b7,b6 /. (b7 + 1)) < b4) &
(for b7 being FinSequence of REAL
st len b7 = (len b6) - 1 &
(for b8 being Element of NAT
st 1 <= b8 & b8 <= len b7
holds b7 /. b8 = dist(b6 /. b8,b6 /. (b8 + 1)))
holds abs ((dist(b2,b3)) - Sum b7) < b5);
:: VECTMETR:th 1
theorem
for b1 being non empty Reflexive discerning symmetric triangle MetrStruct
st b1 is convex
for b2, b3 being Element of the carrier of b1
for b4 being Element of REAL
st 0 < b4
holds ex b5 being FinSequence of the carrier of b1 st
b5 /. 1 = b2 &
b5 /. len b5 = b3 &
(for b6 being Element of NAT
st 1 <= b6 & b6 <= (len b5) - 1
holds dist(b5 /. b6,b5 /. (b6 + 1)) < b4) &
(for b6 being FinSequence of REAL
st len b6 = (len b5) - 1 &
(for b7 being Element of NAT
st 1 <= b7 & b7 <= len b6
holds b6 /. b7 = dist(b5 /. b7,b5 /. (b7 + 1)))
holds dist(b2,b3) = Sum b6);
:: VECTMETR:condreg 1
registration
cluster non empty Reflexive discerning symmetric triangle convex -> internal (MetrStruct);
end;
:: VECTMETR:exreg 1
registration
cluster non empty Reflexive discerning symmetric triangle convex MetrStruct;
end;
:: VECTMETR:modenot 1
definition
mode Geometry is non empty Reflexive discerning symmetric triangle internal MetrStruct;
end;
:: VECTMETR:attrnot 3 => VECTMETR:attr 3
definition
let a1 be non empty MetrStruct;
let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
attr a2 is isometric means
proj2 a2 = the carrier of a1 &
(for b1, b2 being Element of the carrier of a1 holds
dist(b1,b2) = dist(a2 . b1,a2 . b2));
end;
:: VECTMETR:dfs 3
definiens
let a1 be non empty MetrStruct;
let a2 be Function-like quasi_total Relation of the carrier of a1,the carrier of a1;
To prove
a2 is isometric
it is sufficient to prove
thus proj2 a2 = the carrier of a1 &
(for b1, b2 being Element of the carrier of a1 holds
dist(b1,b2) = dist(a2 . b1,a2 . b2));
:: VECTMETR:def 3
theorem
for b1 being non empty MetrStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 holds
b2 is isometric(b1)
iff
proj2 b2 = the carrier of b1 &
(for b3, b4 being Element of the carrier of b1 holds
dist(b3,b4) = dist(b2 . b3,b2 . b4));
:: VECTMETR:funcnot 1 => VECTMETR:func 1
definition
let a1 be non empty MetrStruct;
func ISOM A1 -> set means
for b1 being set holds
b1 in it
iff
ex b2 being Function-like quasi_total Relation of the carrier of a1,the carrier of a1 st
b2 = b1 & b2 is isometric(a1);
end;
:: VECTMETR:def 4
theorem
for b1 being non empty MetrStruct
for b2 being set holds
b2 = ISOM b1
iff
for b3 being set holds
b3 in b2
iff
ex b4 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1 st
b4 = b3 & b4 is isometric(b1);
:: VECTMETR:funcnot 2 => VECTMETR:func 2
definition
let a1 be non empty MetrStruct;
redefine func ISOM a1 -> Element of bool Funcs(the carrier of a1,the carrier of a1);
end;
:: VECTMETR:th 2
theorem
for b1 being non empty Reflexive discerning MetrStruct
for b2 being Function-like quasi_total Relation of the carrier of b1,the carrier of b1
st b2 is isometric(b1)
holds b2 is one-to-one;
:: VECTMETR:condreg 2
registration
let a1 be non empty Reflexive discerning MetrStruct;
cluster Function-like quasi_total isometric -> one-to-one (Relation of the carrier of a1,the carrier of a1);
end;
:: VECTMETR:exreg 2
registration
let a1 be non empty MetrStruct;
cluster Relation-like Function-like non empty quasi_total total isometric Relation of the carrier of a1,the carrier of a1;
end;
:: VECTMETR:th 3
theorem
for b1 being non empty Reflexive discerning MetrStruct
for b2 being Function-like quasi_total isometric Relation of the carrier of b1,the carrier of b1 holds
b2 /" is isometric(b1);
:: VECTMETR:th 4
theorem
for b1 being non empty MetrStruct
for b2, b3 being Function-like quasi_total isometric Relation of the carrier of b1,the carrier of b1 holds
b2 * b3 is isometric(b1);
:: VECTMETR:th 5
theorem
for b1 being non empty MetrStruct holds
id b1 is isometric(b1);
:: VECTMETR:funcreg 1
registration
let a1 be non empty MetrStruct;
cluster ISOM a1 -> non empty;
end;
:: VECTMETR:structnot 1 => VECTMETR:struct 1
definition
struct(RLSStruct, MetrStruct) RLSMetrStruct(#
carrier -> set,
distance -> Function-like quasi_total Relation of [:the carrier of it,the carrier of it:],REAL,
ZeroF -> Element of the carrier of it,
addF -> Function-like quasi_total Relation of [:the carrier of it,the carrier of it:],the carrier of it,
Mult -> Function-like quasi_total Relation of [:REAL,the carrier of it:],the carrier of it
#);
end;
:: VECTMETR:attrnot 4 => VECTMETR:attr 4
definition
let a1 be RLSMetrStruct;
attr a1 is strict;
end;
:: VECTMETR:exreg 3
registration
cluster strict RLSMetrStruct;
end;
:: VECTMETR:aggrnot 1 => VECTMETR:aggr 1
definition
let a1 be set;
let a2 be Function-like quasi_total Relation of [:a1,a1:],REAL;
let a3 be Element of a1;
let a4 be Function-like quasi_total Relation of [:a1,a1:],a1;
let a5 be Function-like quasi_total Relation of [:REAL,a1:],a1;
aggr RLSMetrStruct(#a1,a2,a3,a4,a5#) -> strict RLSMetrStruct;
end;
:: VECTMETR:exreg 4
registration
cluster non empty strict RLSMetrStruct;
end;
:: VECTMETR:funcreg 2
registration
let a1 be non empty set;
let a2 be Function-like quasi_total Relation of [:a1,a1:],REAL;
let a3 be Element of a1;
let a4 be Function-like quasi_total Relation of [:a1,a1:],a1;
let a5 be Function-like quasi_total Relation of [:REAL,a1:],a1;
cluster RLSMetrStruct(#a1,a2,a3,a4,a5#) -> non empty strict;
end;
:: VECTMETR:attrnot 5 => VECTMETR:attr 5
definition
let a1 be non empty RLSMetrStruct;
attr a1 is homogeneous means
for b1 being Element of REAL
for b2, b3 being Element of the carrier of a1 holds
dist(b1 * b2,b1 * b3) = (abs b1) * dist(b2,b3);
end;
:: VECTMETR:dfs 5
definiens
let a1 be non empty RLSMetrStruct;
To prove
a1 is homogeneous
it is sufficient to prove
thus for b1 being Element of REAL
for b2, b3 being Element of the carrier of a1 holds
dist(b1 * b2,b1 * b3) = (abs b1) * dist(b2,b3);
:: VECTMETR:def 5
theorem
for b1 being non empty RLSMetrStruct holds
b1 is homogeneous
iff
for b2 being Element of REAL
for b3, b4 being Element of the carrier of b1 holds
dist(b2 * b3,b2 * b4) = (abs b2) * dist(b3,b4);
:: VECTMETR:attrnot 6 => VECTMETR:attr 6
definition
let a1 be non empty RLSMetrStruct;
attr a1 is translatible means
for b1, b2, b3 being Element of the carrier of a1 holds
dist(b3,b2) = dist(b3 + b1,b2 + b1);
end;
:: VECTMETR:dfs 6
definiens
let a1 be non empty RLSMetrStruct;
To prove
a1 is translatible
it is sufficient to prove
thus for b1, b2, b3 being Element of the carrier of a1 holds
dist(b3,b2) = dist(b3 + b1,b2 + b1);
:: VECTMETR:def 6
theorem
for b1 being non empty RLSMetrStruct holds
b1 is translatible
iff
for b2, b3, b4 being Element of the carrier of b1 holds
dist(b4,b3) = dist(b4 + b2,b3 + b2);
:: VECTMETR:funcnot 3 => VECTMETR:func 3
definition
let a1 be non empty RLSMetrStruct;
let a2 be Element of the carrier of a1;
func Norm A2 -> Element of REAL equals
dist(0. a1,a2);
end;
:: VECTMETR:def 7
theorem
for b1 being non empty RLSMetrStruct
for b2 being Element of the carrier of b1 holds
Norm b2 = dist(0. b1,b2);
:: VECTMETR:exreg 5
registration
cluster non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like Reflexive discerning symmetric triangle strict homogeneous translatible RLSMetrStruct;
end;
:: VECTMETR:modenot 2
definition
mode RealLinearMetrSpace is non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like Reflexive discerning symmetric triangle homogeneous translatible RLSMetrStruct;
end;
:: VECTMETR:th 6
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like homogeneous RLSMetrStruct
for b2 being Element of REAL
for b3 being Element of the carrier of b1 holds
Norm (b2 * b3) = (abs b2) * Norm b3;
:: VECTMETR:th 7
theorem
for b1 being non empty right_complementable Abelian add-associative right_zeroed triangle translatible RLSMetrStruct
for b2, b3 being Element of the carrier of b1 holds
Norm (b2 + b3) <= (Norm b2) + Norm b3;
:: VECTMETR:th 8
theorem
for b1 being non empty right_complementable add-associative right_zeroed translatible RLSMetrStruct
for b2, b3 being Element of the carrier of b1 holds
dist(b2,b3) = Norm (b3 - b2);
:: VECTMETR:funcnot 4 => VECTMETR:func 4
definition
let a1 be Element of NAT;
func RLMSpace A1 -> non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like Reflexive discerning symmetric triangle strict homogeneous translatible RLSMetrStruct means
the carrier of it = REAL a1 &
the distance of it = Pitag_dist a1 &
0. it = 0* a1 &
(for b1, b2 being Element of REAL a1 holds
(the addF of it) .(b1,b2) = b1 + b2) &
(for b1 being Element of REAL a1
for b2 being Element of REAL holds
(the Mult of it) .(b2,b1) = b2 * b1);
end;
:: VECTMETR:def 8
theorem
for b1 being Element of NAT
for b2 being non empty right_complementable Abelian add-associative right_zeroed RealLinearSpace-like Reflexive discerning symmetric triangle strict homogeneous translatible RLSMetrStruct holds
b2 = RLMSpace b1
iff
the carrier of b2 = REAL b1 &
the distance of b2 = Pitag_dist b1 &
0. b2 = 0* b1 &
(for b3, b4 being Element of REAL b1 holds
(the addF of b2) .(b3,b4) = b3 + b4) &
(for b3 being Element of REAL b1
for b4 being Element of REAL holds
(the Mult of b2) .(b4,b3) = b4 * b3);
:: VECTMETR:th 9
theorem
for b1 being Element of NAT
for b2 being Function-like quasi_total isometric Relation of the carrier of RLMSpace b1,the carrier of RLMSpace b1 holds
proj2 b2 = REAL b1;
:: VECTMETR:funcnot 5 => VECTMETR:func 5
definition
let a1 be Element of NAT;
func IsomGroup A1 -> strict multMagma means
the carrier of it = ISOM RLMSpace a1 &
(for b1, b2 being Relation-like Function-like set
st b1 in ISOM RLMSpace a1 & b2 in ISOM RLMSpace a1
holds (the multF of it) .(b1,b2) = b2 * b1);
end;
:: VECTMETR:def 9
theorem
for b1 being Element of NAT
for b2 being strict multMagma holds
b2 = IsomGroup b1
iff
the carrier of b2 = ISOM RLMSpace b1 &
(for b3, b4 being Relation-like Function-like set
st b3 in ISOM RLMSpace b1 & b4 in ISOM RLMSpace b1
holds (the multF of b2) .(b3,b4) = b4 * b3);
:: VECTMETR:funcreg 3
registration
let a1 be Element of NAT;
cluster IsomGroup a1 -> non empty strict;
end;
:: VECTMETR:funcreg 4
registration
let a1 be Element of NAT;
cluster IsomGroup a1 -> strict Group-like associative;
end;
:: VECTMETR:th 10
theorem
for b1 being Element of NAT holds
1_ IsomGroup b1 = id RLMSpace b1;
:: VECTMETR:th 11
theorem
for b1 being Element of NAT
for b2 being Element of the carrier of IsomGroup b1
for b3 being Function-like quasi_total Relation of the carrier of RLMSpace b1,the carrier of RLMSpace b1
st b2 = b3
holds b2 " = b3 /";
:: VECTMETR:funcnot 6 => VECTMETR:func 6
definition
let a1 be Element of NAT;
let a2 be Subgroup of IsomGroup a1;
func SubIsomGroupRel A2 -> Relation of the carrier of RLMSpace a1,the carrier of RLMSpace a1 means
for b1, b2 being Element of the carrier of RLMSpace a1 holds
[b1,b2] in it
iff
ex b3 being Relation-like Function-like set st
b3 in the carrier of a2 & b3 . b1 = b2;
end;
:: VECTMETR:def 10
theorem
for b1 being Element of NAT
for b2 being Subgroup of IsomGroup b1
for b3 being Relation of the carrier of RLMSpace b1,the carrier of RLMSpace b1 holds
b3 = SubIsomGroupRel b2
iff
for b4, b5 being Element of the carrier of RLMSpace b1 holds
[b4,b5] in b3
iff
ex b6 being Relation-like Function-like set st
b6 in the carrier of b2 & b6 . b4 = b5;
:: VECTMETR:funcreg 5
registration
let a1 be Element of NAT;
let a2 be Subgroup of IsomGroup a1;
cluster SubIsomGroupRel a2 -> symmetric transitive total;
end;