:: DIRORT semantic presentation

notation
let c1 be non empty AffinStruct ;
let c2, c3, c4, c5 be Element of c1;
synonym c2,c3 '//' c4,c5 for c2,c3 // c4,c5;
end;

theorem Th1: :: DIRORT:1
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st Gen b2,b3 holds
( ( for b4, b5, b6, b7, b8 being Element of (CESpace b1,b2,b3) holds
( b4,b4 '//' b6,b8 & b4,b6 '//' b8,b8 & ( b4,b6 '//' b5,b7 & b4,b6 '//' b7,b5 & not b4 = b6 implies b5 = b7 ) & ( b4,b6 '//' b5,b7 & b4,b6 '//' b5,b8 & not b4,b6 '//' b7,b8 implies b4,b6 '//' b8,b7 ) & ( b4,b6 '//' b5,b7 implies b6,b4 '//' b7,b5 ) & ( b4,b6 '//' b5,b7 & b4,b6 '//' b7,b8 implies b4,b6 '//' b5,b8 ) & ( not b4,b5 '//' b6,b7 or b6,b7 '//' b4,b5 or b6,b7 '//' b5,b4 ) ) ) & ( for b4, b5, b6 being Element of (CESpace b1,b2,b3) ex b7 being Element of (CESpace b1,b2,b3) st
( b6 <> b7 & b6,b7 '//' b4,b5 ) ) & ( for b4, b5, b6 being Element of (CESpace b1,b2,b3) ex b7 being Element of (CESpace b1,b2,b3) st
( b6 <> b7 & b4,b5 '//' b6,b7 ) ) )
proof end;

theorem Th2: :: DIRORT:2
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st Gen b2,b3 holds
( ( for b4, b5, b6, b7, b8 being Element of (CMSpace b1,b2,b3) holds
( b4,b4 '//' b6,b8 & b4,b6 '//' b8,b8 & ( b4,b6 '//' b5,b7 & b4,b6 '//' b7,b5 & not b4 = b6 implies b5 = b7 ) & ( b4,b6 '//' b5,b7 & b4,b6 '//' b5,b8 & not b4,b6 '//' b7,b8 implies b4,b6 '//' b8,b7 ) & ( b4,b6 '//' b5,b7 implies b6,b4 '//' b7,b5 ) & ( b4,b6 '//' b5,b7 & b4,b6 '//' b7,b8 implies b4,b6 '//' b5,b8 ) & ( not b4,b5 '//' b6,b7 or b6,b7 '//' b4,b5 or b6,b7 '//' b5,b4 ) ) ) & ( for b4, b5, b6 being Element of (CMSpace b1,b2,b3) ex b7 being Element of (CMSpace b1,b2,b3) st
( b6 <> b7 & b6,b7 '//' b4,b5 ) ) & ( for b4, b5, b6 being Element of (CMSpace b1,b2,b3) ex b7 being Element of (CMSpace b1,b2,b3) st
( b6 <> b7 & b4,b5 '//' b6,b7 ) ) )
proof end;

definition
let c1 be non empty AffinStruct ;
attr a1 is Oriented_Orthogonality_Space-like means :Def1: :: DIRORT:def 1
( ( for b1, b2, b3, b4, b5 being Element of a1 holds
( b1,b1 '//' b3,b5 & b1,b3 '//' b5,b5 & ( b1,b3 '//' b2,b4 & b1,b3 '//' b4,b2 & not b1 = b3 implies b2 = b4 ) & ( b1,b3 '//' b2,b4 & b1,b3 '//' b2,b5 & not b1,b3 '//' b4,b5 implies b1,b3 '//' b5,b4 ) & ( b1,b3 '//' b2,b4 implies b3,b1 '//' b4,b2 ) & ( b1,b3 '//' b2,b4 & b1,b3 '//' b4,b5 implies b1,b3 '//' b2,b5 ) & ( not b1,b2 '//' b3,b4 or b3,b4 '//' b1,b2 or b3,b4 '//' b2,b1 ) ) ) & ( for b1, b2, b3 being Element of a1 ex b4 being Element of a1 st
( b3 <> b4 & b3,b4 '//' b1,b2 ) ) & ( for b1, b2, b3 being Element of a1 ex b4 being Element of a1 st
( b3 <> b4 & b1,b2 '//' b3,b4 ) ) );
end;

:: deftheorem Def1 defines Oriented_Orthogonality_Space-like DIRORT:def 1 :
for b1 being non empty AffinStruct holds
( b1 is Oriented_Orthogonality_Space-like iff ( ( for b2, b3, b4, b5, b6 being Element of b1 holds
( b2,b2 '//' b4,b6 & b2,b4 '//' b6,b6 & ( b2,b4 '//' b3,b5 & b2,b4 '//' b5,b3 & not b2 = b4 implies b3 = b5 ) & ( b2,b4 '//' b3,b5 & b2,b4 '//' b3,b6 & not b2,b4 '//' b5,b6 implies b2,b4 '//' b6,b5 ) & ( b2,b4 '//' b3,b5 implies b4,b2 '//' b5,b3 ) & ( b2,b4 '//' b3,b5 & b2,b4 '//' b5,b6 implies b2,b4 '//' b3,b6 ) & ( not b2,b3 '//' b4,b5 or b4,b5 '//' b2,b3 or b4,b5 '//' b3,b2 ) ) ) & ( for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b4 <> b5 & b4,b5 '//' b2,b3 ) ) & ( for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b4 <> b5 & b2,b3 '//' b4,b5 ) ) ) );

registration
cluster non empty Oriented_Orthogonality_Space-like AffinStruct ;
existence
ex b1 being non empty AffinStruct st b1 is Oriented_Orthogonality_Space-like
proof end;
end;

definition
mode Oriented_Orthogonality_Space is non empty Oriented_Orthogonality_Space-like AffinStruct ;
end;

theorem Th3: :: DIRORT:3
canceled;

theorem Th4: :: DIRORT:4
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st Gen b2,b3 holds
CMSpace b1,b2,b3 is Oriented_Orthogonality_Space
proof end;

theorem Th5: :: DIRORT:5
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1 st Gen b2,b3 holds
CESpace b1,b2,b3 is Oriented_Orthogonality_Space
proof end;

theorem Th6: :: DIRORT:6
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b5,b4 '//' b2,b3 & b5 <> b4 )
proof end;

theorem Th7: :: DIRORT:7
canceled;

theorem Th8: :: DIRORT:8
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4 being Element of b1 ex b5 being Element of b1 st
( b2 <> b5 & ( b3,b4 '//' b2,b5 or b3,b4 '//' b5,b2 ) )
proof end;

definition
let c1 be Oriented_Orthogonality_Space;
let c2, c3, c4, c5 be Element of c1;
pred c2,c3 _|_ c4,c5 means :: DIRORT:def 2
( a2,a3 '//' a4,a5 or a2,a3 '//' a5,a4 );
end;

:: deftheorem Def2 defines _|_ DIRORT:def 2 :
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4, b5 being Element of b1 holds
( b2,b3 _|_ b4,b5 iff ( b2,b3 '//' b4,b5 or b2,b3 '//' b5,b4 ) );

definition
let c1 be Oriented_Orthogonality_Space;
let c2, c3, c4, c5 be Element of c1;
pred c2,c3 // c4,c5 means :Def3: :: DIRORT:def 3
ex b1, b2 being Element of a1 st
( b1 <> b2 & b1,b2 '//' a2,a3 & b1,b2 '//' a4,a5 );
end;

:: deftheorem Def3 defines // DIRORT:def 3 :
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4, b5 being Element of b1 holds
( b2,b3 // b4,b5 iff ex b6, b7 being Element of b1 st
( b6 <> b7 & b6,b7 '//' b2,b3 & b6,b7 '//' b4,b5 ) );

definition
let c1 be Oriented_Orthogonality_Space;
attr a1 is bach_transitive means :Def4: :: DIRORT:def 4
for b1, b2, b3, b4, b5, b6, b7, b8 being Element of a1 st b1,b2 '//' b4,b5 & b7,b8 '//' b4,b5 & b7,b8 '//' b3,b6 & not b7 = b8 & not b4 = b5 holds
b1,b2 '//' b3,b6;
end;

:: deftheorem Def4 defines bach_transitive DIRORT:def 4 :
for b1 being Oriented_Orthogonality_Space holds
( b1 is bach_transitive iff for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 st b2,b3 '//' b5,b6 & b8,b9 '//' b5,b6 & b8,b9 '//' b4,b7 & not b8 = b9 & not b5 = b6 holds
b2,b3 '//' b4,b7 );

definition
let c1 be Oriented_Orthogonality_Space;
attr a1 is right_transitive means :Def5: :: DIRORT:def 5
for b1, b2, b3, b4, b5, b6, b7, b8 being Element of a1 st b1,b2 '//' b4,b5 & b4,b5 '//' b7,b8 & b3,b6 '//' b7,b8 & not b7 = b8 & not b4 = b5 holds
b1,b2 '//' b3,b6;
end;

:: deftheorem Def5 defines right_transitive DIRORT:def 5 :
for b1 being Oriented_Orthogonality_Space holds
( b1 is right_transitive iff for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 st b2,b3 '//' b5,b6 & b5,b6 '//' b8,b9 & b4,b7 '//' b8,b9 & not b8 = b9 & not b5 = b6 holds
b2,b3 '//' b4,b7 );

definition
let c1 be Oriented_Orthogonality_Space;
attr a1 is left_transitive means :Def6: :: DIRORT:def 6
for b1, b2, b3, b4, b5, b6, b7, b8 being Element of a1 st b1,b2 '//' b4,b5 & b4,b5 '//' b7,b8 & b1,b2 '//' b3,b6 & not b1 = b2 & not b4 = b5 holds
b3,b6 '//' b7,b8;
end;

:: deftheorem Def6 defines left_transitive DIRORT:def 6 :
for b1 being Oriented_Orthogonality_Space holds
( b1 is left_transitive iff for b2, b3, b4, b5, b6, b7, b8, b9 being Element of b1 st b2,b3 '//' b5,b6 & b5,b6 '//' b8,b9 & b2,b3 '//' b4,b7 & not b2 = b3 & not b5 = b6 holds
b4,b7 '//' b8,b9 );

definition
let c1 be Oriented_Orthogonality_Space;
attr a1 is Euclidean_like means :Def7: :: DIRORT:def 7
for b1, b2, b3, b4 being Element of a1 st b1,b2 '//' b3,b4 holds
b3,b4 '//' b2,b1;
end;

:: deftheorem Def7 defines Euclidean_like DIRORT:def 7 :
for b1 being Oriented_Orthogonality_Space holds
( b1 is Euclidean_like iff for b2, b3, b4, b5 being Element of b1 st b2,b3 '//' b4,b5 holds
b4,b5 '//' b3,b2 );

definition
let c1 be Oriented_Orthogonality_Space;
attr a1 is Minkowskian_like means :Def8: :: DIRORT:def 8
for b1, b2, b3, b4 being Element of a1 st b1,b2 '//' b3,b4 holds
b3,b4 '//' b1,b2;
end;

:: deftheorem Def8 defines Minkowskian_like DIRORT:def 8 :
for b1 being Oriented_Orthogonality_Space holds
( b1 is Minkowskian_like iff for b2, b3, b4, b5 being Element of b1 st b2,b3 '//' b4,b5 holds
b4,b5 '//' b2,b3 );

theorem Th9: :: DIRORT:9
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4 being Element of b1 holds
( b2,b3 // b4,b4 & b4,b4 // b2,b3 )
proof end;

theorem Th10: :: DIRORT:10
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4, b5 being Element of b1 st b2,b3 // b4,b5 holds
b4,b5 // b2,b3
proof end;

theorem Th11: :: DIRORT:11
for b1 being Oriented_Orthogonality_Space
for b2, b3, b4, b5 being Element of b1 st b2,b3 // b4,b5 holds
b3,b2 // b5,b4
proof end;

theorem Th12: :: DIRORT:12
for b1 being Oriented_Orthogonality_Space holds
( b1 is left_transitive iff for b2, b3, b4, b5, b6, b7 being Element of b1 st b2,b3 // b6,b7 & b2,b3 '//' b4,b5 & b2 <> b3 holds
b6,b7 '//' b4,b5 )
proof end;

theorem Th13: :: DIRORT:13
for b1 being Oriented_Orthogonality_Space holds
( b1 is bach_transitive iff for b2, b3, b4, b5, b6, b7 being Element of b1 st b2,b3 '//' b5,b6 & b5,b6 // b4,b7 & b5 <> b6 holds
b2,b3 '//' b4,b7 )
proof end;

theorem Th14: :: DIRORT:14
for b1 being Oriented_Orthogonality_Space st b1 is bach_transitive holds
for b2, b3, b4, b5, b6, b7 being Element of b1 st b2,b3 // b4,b5 & b4,b5 // b6,b7 & b4 <> b5 holds
b2,b3 // b6,b7
proof end;

theorem Th15: :: DIRORT:15
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4 being Oriented_Orthogonality_Space st Gen b2,b3 & b4 = CESpace b1,b2,b3 holds
( b4 is Euclidean_like & b4 is left_transitive & b4 is right_transitive & b4 is bach_transitive )
proof end;

registration
cluster bach_transitive right_transitive left_transitive Euclidean_like AffinStruct ;
existence
ex b1 being Oriented_Orthogonality_Space st
( b1 is Euclidean_like & b1 is left_transitive & b1 is right_transitive & b1 is bach_transitive )
proof end;
end;

theorem Th16: :: DIRORT:16
for b1 being RealLinearSpace
for b2, b3 being VECTOR of b1
for b4 being Oriented_Orthogonality_Space st Gen b2,b3 & b4 = CMSpace b1,b2,b3 holds
( b4 is Minkowskian_like & b4 is left_transitive & b4 is right_transitive & b4 is bach_transitive )
proof end;

registration
cluster bach_transitive right_transitive left_transitive Minkowskian_like AffinStruct ;
existence
ex b1 being Oriented_Orthogonality_Space st
( b1 is Minkowskian_like & b1 is left_transitive & b1 is right_transitive & b1 is bach_transitive )
proof end;
end;

theorem Th17: :: DIRORT:17
for b1 being Oriented_Orthogonality_Space st b1 is left_transitive holds
b1 is right_transitive
proof end;

theorem Th18: :: DIRORT:18
for b1 being Oriented_Orthogonality_Space st b1 is left_transitive holds
b1 is bach_transitive
proof end;

theorem Th19: :: DIRORT:19
for b1 being Oriented_Orthogonality_Space st b1 is bach_transitive holds
( b1 is right_transitive iff for b2, b3, b4, b5, b6, b7 being Element of b1 st b2,b3 '//' b6,b7 & b4,b5 '//' b6,b7 & b6 <> b7 holds
b2,b3 // b4,b5 )
proof end;

theorem Th20: :: DIRORT:20
for b1 being Oriented_Orthogonality_Space st b1 is right_transitive & ( b1 is Euclidean_like or b1 is Minkowskian_like ) holds
b1 is left_transitive
proof end;