:: BHSP_1 semantic presentation

definition
attr a1 is strict;
struct UNITSTR -> RLSStruct ;
aggr UNITSTR(# carrier, Zero, add, Mult, scalar #) -> UNITSTR ;
sel scalar c1 -> Function of [:the carrier of a1,the carrier of a1:], REAL ;
end;

registration
cluster non empty strict UNITSTR ;
existence
ex b1 being UNITSTR st
( not b1 is empty & b1 is strict )
proof end;
end;

registration
let D be non empty set ;
let Z be Element of D;
let a be BinOp of D;
let m be Function of [:REAL ,D:],D;
let s be Function of [:D,D:], REAL ;
cluster UNITSTR(# a1,a2,a3,a4,a5 #) -> non empty ;
coherence
not UNITSTR(# D,Z,a,m,s #) is empty
proof end;
end;

deffunc H1( UNITSTR ) -> Element of the carrier of a1 = 0. a1;

definition
let X be non empty UNITSTR ;
let x be Point of X;
let y be Point of X;
func c2 .|. c3 -> Real equals :: BHSP_1:def 1
the scalar of X . [x,y];
correctness
coherence
the scalar of X . [x,y] is Real
;
;
end;

:: deftheorem Def1 defines .|. BHSP_1:def 1 :
for X being non empty UNITSTR
for x, y being Point of X holds x .|. y = the scalar of X . [x,y];

consider V0 being RealLinearSpace;

Lemma36: the carrier of ((0). V0) = {(0. V0)}
by RLSUB_1:def 3;

reconsider nilfunc = [:the carrier of ((0). V0),the carrier of ((0). V0):] --> 0 as Function of [:the carrier of ((0). V0),the carrier of ((0). V0):], REAL by FUNCOP_1:57;

Lemma38: for x, y being VECTOR of ((0). V0) holds nilfunc . [x,y] = 0
by FUNCOP_1:13;

0. V0 in the carrier of ((0). V0)
by , TARSKI:def 1;

then Lemma39: nilfunc . [(0. V0),(0. V0)] = 0
by ;

Lemma40: for u, v being VECTOR of ((0). V0) holds nilfunc . [u,v] = nilfunc . [v,u]
proof end;

Lemma43: for u, v, w being VECTOR of ((0). V0) holds nilfunc . [(u + v),w] = (nilfunc . [u,w]) + (nilfunc . [v,w])
proof end;

Lemma45: for u, v being VECTOR of ((0). V0)
for a being Real holds nilfunc . [(a * u),v] = a * (nilfunc . [u,v])
proof end;

set X0 = UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #);

E47: now
let x be Point of UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #), y be Point of UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #), z be Point of UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #);
let a be Real;
thus ( x .|. x = 0 iff x = H1( UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #)) )
proof
H1( UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #)) = 0. ((0). V0)
.= 0. V0 by RLSUB_1:19 ;
hence ( x .|. x = 0 iff x = H1( UNITSTR(# the carrier of ((0). V0),the Zero of ((0). V0),the add of ((0). V0),the Mult of ((0). V0),nilfunc #)) ) by , , TARSKI:def 1;
end;
thus 0 <= x .|. x by FUNCOP_1:13;
thus x .|. y = y .|. x by ;
thus (x + y) .|. z = (x .|. z) + (y .|. z)
proof
reconsider u = x, v = y, w = z as VECTOR of ((0). V0) ;
( (x + y) .|. z = nilfunc . [(u + v),w] & x .|. z = nilfunc . [u,w] & y .|. z = nilfunc . [v,w] ) ;
hence (x + y) .|. z = (x .|. z) + (y .|. z) by ;
end;
thus (a * x) .|. y = a * (x .|. y)
proof
reconsider u = x, v = y as VECTOR of ((0). V0) ;
( (a * x) .|. y = nilfunc . [(a * u),v] & x .|. y = nilfunc . [u,v] ) ;
hence (a * x) .|. y = a * (x .|. y) by ;
end;
end;

definition
let IT be non empty UNITSTR ;
attr a1 is RealUnitarySpace-like means :Def2: :: BHSP_1:def 2
for x, y, z being Point of V0
for a being Real holds
( ( x .|. x = 0 implies x = 0. V0 ) & ( x = 0. V0 implies x .|. x = 0 ) & 0 <= x .|. x & x .|. y = y .|. x & (x + y) .|. z = (x .|. z) + (y .|. z) & (a * x) .|. y = a * (x .|. y) );
end;

:: deftheorem Def2 defines RealUnitarySpace-like BHSP_1:def 2 :
for IT being non empty UNITSTR holds
( IT is RealUnitarySpace-like iff for x, y, z being Point of IT
for a being Real holds
( ( x .|. x = 0 implies x = 0. IT ) & ( x = 0. IT implies x .|. x = 0 ) & 0 <= x .|. x & x .|. y = y .|. x & (x + y) .|. z = (x .|. z) + (y .|. z) & (a * x) .|. y = a * (x .|. y) ) );

registration
cluster non empty Abelian add-associative right_zeroed right_complementable RealLinearSpace-like strict RealUnitarySpace-like UNITSTR ;
existence
ex b1 being non empty UNITSTR st
( b1 is RealUnitarySpace-like & b1 is RealLinearSpace-like & b1 is Abelian & b1 is add-associative & b1 is right_zeroed & b1 is right_complementable & b1 is strict )
proof end;
end;

definition
mode RealUnitarySpace is non empty Abelian add-associative right_zeroed right_complementable RealLinearSpace-like RealUnitarySpace-like UNITSTR ;
end;

definition
let X be RealUnitarySpace;
let x be Point of X;
let y be Point of X;
redefine func .|. as c2 .|. c3 -> Real;
commutativity
for x, y being Point of X holds x .|. y = y .|. x
by ;
end;

theorem Th1: :: BHSP_1:1
canceled;

theorem Th2: :: BHSP_1:2
canceled;

theorem Th3: :: BHSP_1:3
canceled;

theorem Th4: :: BHSP_1:4
canceled;

theorem Th5: :: BHSP_1:5
canceled;

theorem Th6: :: BHSP_1:6
for X being RealUnitarySpace holds (0. X) .|. (0. X) = 0 by ;

theorem Th7: :: BHSP_1:7
for X being RealUnitarySpace
for x, y, z being Point of X holds x .|. (y + z) = (x .|. y) + (x .|. z) by ;

theorem Th8: :: BHSP_1:8
for a being Real
for X being RealUnitarySpace
for x, y being Point of X holds x .|. (a * y) = a * (x .|. y) by ;

theorem Th9: :: BHSP_1:9
for a being Real
for X being RealUnitarySpace
for x, y being Point of X holds (a * x) .|. y = x .|. (a * y)
proof end;

theorem Th10: :: BHSP_1:10
for a, b being Real
for X being RealUnitarySpace
for x, y, z being Point of X holds ((a * x) + (b * y)) .|. z = (a * (x .|. z)) + (b * (y .|. z))
proof end;

theorem Th11: :: BHSP_1:11
for a, b being Real
for X being RealUnitarySpace
for x, y, z being Point of X holds x .|. ((a * y) + (b * z)) = (a * (x .|. y)) + (b * (x .|. z)) by ;

theorem Th12: :: BHSP_1:12
for X being RealUnitarySpace
for x, y being Point of X holds (- x) .|. y = x .|. (- y)
proof end;

theorem Th13: :: BHSP_1:13
for X being RealUnitarySpace
for x, y being Point of X holds (- x) .|. y = - (x .|. y)
proof end;

theorem Th14: :: BHSP_1:14
for X being RealUnitarySpace
for x, y being Point of X holds x .|. (- y) = - (x .|. y) by ;

theorem Th15: :: BHSP_1:15
for X being RealUnitarySpace
for x, y being Point of X holds (- x) .|. (- y) = x .|. y
proof end;

theorem Th16: :: BHSP_1:16
for X being RealUnitarySpace
for x, y, z being Point of X holds (x - y) .|. z = (x .|. z) - (y .|. z)
proof end;

theorem Th17: :: BHSP_1:17
for X being RealUnitarySpace
for x, y, z being Point of X holds x .|. (y - z) = (x .|. y) - (x .|. z)
proof end;

theorem Th18: :: BHSP_1:18
for X being RealUnitarySpace
for x, y, u, v being Point of X holds (x - y) .|. (u - v) = (((x .|. u) - (x .|. v)) - (y .|. u)) + (y .|. v)
proof end;

theorem Th19: :: BHSP_1:19
for X being RealUnitarySpace
for x being Point of X holds (0. X) .|. x = 0
proof end;

theorem Th20: :: BHSP_1:20
for X being RealUnitarySpace
for x being Point of X holds x .|. (0. X) = 0 by ;

theorem Th21: :: BHSP_1:21
for X being RealUnitarySpace
for x, y being Point of X holds (x + y) .|. (x + y) = ((x .|. x) + (2 * (x .|. y))) + (y .|. y)
proof end;

theorem Th22: :: BHSP_1:22
for X being RealUnitarySpace
for x, y being Point of X holds (x + y) .|. (x - y) = (x .|. x) - (y .|. y)
proof end;

theorem Th23: :: BHSP_1:23
for X being RealUnitarySpace
for x, y being Point of X holds (x - y) .|. (x - y) = ((x .|. x) - (2 * (x .|. y))) + (y .|. y)
proof end;

theorem Th24: :: BHSP_1:24
for X being RealUnitarySpace
for x, y being Point of X holds abs (x .|. y) <= (sqrt (x .|. x)) * (sqrt (y .|. y))
proof end;

definition
let X be RealUnitarySpace;
let x be Point of X;
let y be Point of X;
pred c2,c3 are_orthogonal means :Def3: :: BHSP_1:def 3
nilfunc .|. X0 = 0;
symmetry
for x, y being Point of X st x .|. y = 0 holds
y .|. x = 0
;
end;

:: deftheorem Def3 defines are_orthogonal BHSP_1:def 3 :
for X being RealUnitarySpace
for x, y being Point of X holds
( x,y are_orthogonal iff x .|. y = 0 );

theorem Th25: :: BHSP_1:25
canceled;

theorem Th26: :: BHSP_1:26
for X being RealUnitarySpace
for x, y being Point of X st x,y are_orthogonal holds
x, - y are_orthogonal
proof end;

theorem Th27: :: BHSP_1:27
for X being RealUnitarySpace
for x, y being Point of X st x,y are_orthogonal holds
- x,y are_orthogonal
proof end;

theorem Th28: :: BHSP_1:28
for X being RealUnitarySpace
for x, y being Point of X st x,y are_orthogonal holds
- x, - y are_orthogonal
proof end;

theorem Th29: :: BHSP_1:29
for X being RealUnitarySpace
for x being Point of X holds x, 0. X are_orthogonal
proof end;

theorem Th30: :: BHSP_1:30
for X being RealUnitarySpace
for x, y being Point of X st x,y are_orthogonal holds
(x + y) .|. (x + y) = (x .|. x) + (y .|. y)
proof end;

theorem Th31: :: BHSP_1:31
for X being RealUnitarySpace
for x, y being Point of X st x,y are_orthogonal holds
(x - y) .|. (x - y) = (x .|. x) + (y .|. y)
proof end;

definition
let X be RealUnitarySpace;
let x be Point of X;
func ||.c2.|| -> Real equals :: BHSP_1:def 4
sqrt (nilfunc .|. nilfunc);
correctness
coherence
sqrt (x .|. x) is Real
;
;
end;

:: deftheorem Def4 defines ||. BHSP_1:def 4 :
for X being RealUnitarySpace
for x being Point of X holds ||.x.|| = sqrt (x .|. x);

theorem Th32: :: BHSP_1:32
for X being RealUnitarySpace
for x being Point of X holds
( ||.x.|| = 0 iff x = 0. X )
proof end;

theorem Th33: :: BHSP_1:33
for a being Real
for X being RealUnitarySpace
for x being Point of X holds ||.(a * x).|| = (abs a) * ||.x.||
proof end;

theorem Th34: :: BHSP_1:34
for X being RealUnitarySpace
for x being Point of X holds 0 <= ||.x.||
proof end;

theorem Th35: :: BHSP_1:35
for X being RealUnitarySpace
for x, y being Point of X holds abs (x .|. y) <= ||.x.|| * ||.y.|| by ;

theorem Th36: :: BHSP_1:36
for X being RealUnitarySpace
for x, y being Point of X holds ||.(x + y).|| <= ||.x.|| + ||.y.||
proof end;

theorem Th37: :: BHSP_1:37
for X being RealUnitarySpace
for x being Point of X holds ||.(- x).|| = ||.x.||
proof end;

theorem Th38: :: BHSP_1:38
for X being RealUnitarySpace
for x, y being Point of X holds ||.x.|| - ||.y.|| <= ||.(x - y).||
proof end;

theorem Th39: :: BHSP_1:39
for X being RealUnitarySpace
for x, y being Point of X holds abs (||.x.|| - ||.y.||) <= ||.(x - y).||
proof end;

definition
let X be RealUnitarySpace;
let x be Point of X;
let y be Point of X;
func dist c2,c3 -> Real equals :: BHSP_1:def 5
||.(nilfunc - X0).||;
correctness
coherence
||.(x - y).|| is Real
;
;
end;

:: deftheorem Def5 defines dist BHSP_1:def 5 :
for X being RealUnitarySpace
for x, y being Point of X holds dist x,y = ||.(x - y).||;

theorem Th40: :: BHSP_1:40
for X being RealUnitarySpace
for x, y being Point of X holds dist x,y = dist y,x
proof end;

definition
let X be RealUnitarySpace;
let x be Point of X;
let y be Point of X;
redefine func dist as dist c2,c3 -> Real;
commutativity
for x, y being Point of X holds dist x,y = dist y,x
by ;
end;

theorem Th41: :: BHSP_1:41
for X being RealUnitarySpace
for x being Point of X holds dist x,x = 0
proof end;

theorem Th42: :: BHSP_1:42
for X being RealUnitarySpace
for x, z, y being Point of X holds dist x,z <= (dist x,y) + (dist y,z)
proof end;

theorem Th43: :: BHSP_1:43
for X being RealUnitarySpace
for x, y being Point of X holds
( x <> y iff dist x,y <> 0 )
proof end;

theorem Th44: :: BHSP_1:44
for X being RealUnitarySpace
for x, y being Point of X holds dist x,y >= 0 by ;

theorem Th45: :: BHSP_1:45
for X being RealUnitarySpace
for x, y being Point of X holds
( x <> y iff dist x,y > 0 )
proof end;

theorem Th46: :: BHSP_1:46
for X being RealUnitarySpace
for x, y being Point of X holds dist x,y = sqrt ((x - y) .|. (x - y)) ;

theorem Th47: :: BHSP_1:47
for X being RealUnitarySpace
for x, y, u, v being Point of X holds dist (x + y),(u + v) <= (dist x,u) + (dist y,v)
proof end;

theorem Th48: :: BHSP_1:48
for X being RealUnitarySpace
for x, y, u, v being Point of X holds dist (x - y),(u - v) <= (dist x,u) + (dist y,v)
proof end;

theorem Th49: :: BHSP_1:49
for X being RealUnitarySpace
for x, z, y being Point of X holds dist (x - z),(y - z) = dist x,y
proof end;

theorem Th50: :: BHSP_1:50
for X being RealUnitarySpace
for x, z, y being Point of X holds dist (x - z),(y - z) <= (dist z,x) + (dist z,y)
proof end;

definition
let X be RealUnitarySpace;
let seq be sequence of X;
canceled;
canceled;
canceled;
canceled;
func - c2 -> sequence of a1 means :Def10: :: BHSP_1:def 10
for n being Element of NAT holds it . n = - (nilfunc . n);
existence
ex b1 being sequence of X st
for n being Element of NAT holds b1 . n = - (seq . n)
proof end;
uniqueness
for b1, b2 being sequence of X st ( for n being Element of NAT holds b1 . n = - (seq . n) ) & ( for n being Element of NAT holds b2 . n = - (seq . n) ) holds
b1 = b2
proof end;
end;

:: deftheorem Def6 BHSP_1:def 6 :
canceled;

:: deftheorem Def7 BHSP_1:def 7 :
canceled;

:: deftheorem Def8 BHSP_1:def 8 :
canceled;

:: deftheorem Def9 BHSP_1:def 9 :
canceled;

:: deftheorem Def10 defines - BHSP_1:def 10 :
for X being RealUnitarySpace
for seq, b3 being sequence of X holds
( b3 = - seq iff for n being Element of NAT holds b3 . n = - (seq . n) );

definition
let X be RealUnitarySpace;
let seq be sequence of X;
let x be Point of X;
canceled;
func c2 + c3 -> sequence of a1 means :Def12: :: BHSP_1:def 12
for n being Element of NAT holds it . n = (nilfunc . n) + X0;
existence
ex b1 being sequence of X st
for n being Element of NAT holds b1 . n = (seq . n) + x
proof end;
uniqueness
for b1, b2 being sequence of X st ( for n being Element of NAT holds b1 . n = (seq . n) + x ) & ( for n being Element of NAT holds b2 . n = (seq . n) + x ) holds
b1 = b2
proof end;
end;

:: deftheorem Def11 BHSP_1:def 11 :
canceled;

:: deftheorem Def12 defines + BHSP_1:def 12 :
for X being RealUnitarySpace
for seq being sequence of X
for x being Point of X
for b4 being sequence of X holds
( b4 = seq + x iff for n being Element of NAT holds b4 . n = (seq . n) + x );

theorem Th51: :: BHSP_1:51
canceled;

theorem Th52: :: BHSP_1:52
canceled;

theorem Th53: :: BHSP_1:53
canceled;

theorem Th54: :: BHSP_1:54
canceled;

theorem Th55: :: BHSP_1:55
for X being RealUnitarySpace
for seq1, seq2 being sequence of X holds seq1 + seq2 = seq2 + seq1
proof end;

definition
let X be RealUnitarySpace;
let seq1 be sequence of X;
let seq2 be sequence of X;
redefine func + as c2 + c3 -> M5( NAT ,the carrier of a1);
commutativity
for seq1, seq2 being sequence of X holds seq1 + seq2 = seq2 + seq1
by ;
end;

theorem Th56: :: BHSP_1:56
for X being RealUnitarySpace
for seq1, seq2, seq3 being sequence of X holds seq1 + (seq2 + seq3) = (seq1 + seq2) + seq3
proof end;

theorem Th57: :: BHSP_1:57
for X being RealUnitarySpace
for seq1, seq2, seq being sequence of X st seq1 is constant & seq2 is constant & seq = seq1 + seq2 holds
seq is constant
proof end;

theorem Th58: :: BHSP_1:58
for X being RealUnitarySpace
for seq1, seq2, seq being sequence of X st seq1 is constant & seq2 is constant & seq = seq1 - seq2 holds
seq is constant
proof end;

theorem Th59: :: BHSP_1:59
for a being Real
for X being RealUnitarySpace
for seq1, seq being sequence of X st seq1 is constant & seq = a * seq1 holds
seq is constant
proof end;

theorem Th60: :: BHSP_1:60
canceled;

theorem Th61: :: BHSP_1:61
canceled;

theorem Th62: :: BHSP_1:62
canceled;

theorem Th63: :: BHSP_1:63
canceled;

theorem Th64: :: BHSP_1:64
canceled;

theorem Th65: :: BHSP_1:65
canceled;

theorem Th66: :: BHSP_1:66
canceled;

theorem Th67: :: BHSP_1:67
canceled;

theorem Th68: :: BHSP_1:68
for X being RealUnitarySpace
for seq being sequence of X holds
( seq is constant iff for n being Element of NAT holds seq . n = seq . (n + 1) )
proof end;

theorem Th69: :: BHSP_1:69
for X being RealUnitarySpace
for seq being sequence of X holds
( seq is constant iff for n, k being Element of NAT holds seq . n = seq . (n + k) )
proof end;

theorem Th70: :: BHSP_1:70
for X being RealUnitarySpace
for seq being sequence of X holds
( seq is constant iff for n, m being Element of NAT holds seq . n = seq . m )
proof end;

theorem Th71: :: BHSP_1:71
for X being RealUnitarySpace
for seq1, seq2 being sequence of X holds seq1 - seq2 = seq1 + (- seq2)
proof end;

theorem Th72: :: BHSP_1:72
for X being RealUnitarySpace
for seq being sequence of X holds seq = seq + (0. X)
proof end;

theorem Th73: :: BHSP_1:73
for a being Real
for X being RealUnitarySpace
for seq1, seq2 being sequence of X holds a * (seq1 + seq2) = (a * seq1) + (a * seq2)
proof end;

theorem Th74: :: BHSP_1:74
for a, b being Real
for X being RealUnitarySpace
for seq being sequence of X holds (a + b) * seq = (a * seq) + (b * seq)
proof end;

theorem Th75: :: BHSP_1:75
for a, b being Real
for X being RealUnitarySpace
for seq being sequence of X holds (a * b) * seq = a * (b * seq)
proof end;

theorem Th76: :: BHSP_1:76
for X being RealUnitarySpace
for seq being sequence of X holds 1 * seq = seq
proof end;

theorem Th77: :: BHSP_1:77
for X being RealUnitarySpace
for seq being sequence of X holds (- 1) * seq = - seq
proof end;

theorem Th78: :: BHSP_1:78
for X being RealUnitarySpace
for x being Point of X
for seq being sequence of X holds seq - x = seq + (- x)
proof end;

theorem Th79: :: BHSP_1:79
for X being RealUnitarySpace
for seq1, seq2 being sequence of X holds seq1 - seq2 = - (seq2 - seq1)
proof end;

theorem Th80: :: BHSP_1:80
for X being RealUnitarySpace
for seq being sequence of X holds seq = seq - (0. X)
proof end;

theorem Th81: :: BHSP_1:81
for X being RealUnitarySpace
for seq being sequence of X holds seq = - (- seq)
proof end;

theorem Th82: :: BHSP_1:82
for X being RealUnitarySpace
for seq1, seq2, seq3 being sequence of X holds seq1 - (seq2 + seq3) = (seq1 - seq2) - seq3
proof end;

theorem Th83: :: BHSP_1:83
for X being RealUnitarySpace
for seq1, seq2, seq3 being sequence of X holds (seq1 + seq2) - seq3 = seq1 + (seq2 - seq3)
proof end;

theorem Th84: :: BHSP_1:84
for X being RealUnitarySpace
for seq1, seq2, seq3 being sequence of X holds seq1 - (seq2 - seq3) = (seq1 - seq2) + seq3
proof end;

theorem Th85: :: BHSP_1:85
for a being Real
for X being RealUnitarySpace
for seq1, seq2 being sequence of X holds a * (seq1 - seq2) = (a * seq1) - (a * seq2)
proof end;