let GF be non empty right_complementable well-unital distributive Abelian add-associative right_zeroed associative doubleLoopStr ; :: thesis: for V being non empty right_complementable vector-distributive scalar-distributive scalar-associative scalar-unital Abelian add-associative right_zeroed ModuleStr over GF
for V1 being Subset of V st V1 <> {} & V1 is linearly-closed holds
ex W being strict Subspace of V st V1 = the carrier of W

let V be non empty right_complementable vector-distributive scalar-distributive scalar-associative scalar-unital Abelian add-associative right_zeroed ModuleStr over GF; :: thesis: for V1 being Subset of V st V1 <> {} & V1 is linearly-closed holds
ex W being strict Subspace of V st V1 = the carrier of W

let V1 be Subset of V; :: thesis: ( V1 <> {} & V1 is linearly-closed implies ex W being strict Subspace of V st V1 = the carrier of W )
assume that
A1: V1 <> {} and
A2: V1 is linearly-closed ; :: thesis: ex W being strict Subspace of V st V1 = the carrier of W
reconsider D = V1 as non empty set by A1;
reconsider d = 0. V as Element of D by ;
set VV = the carrier of V;
set C = (comp V) | D;
dom (comp V) = the carrier of V by FUNCT_2:def 1;
then A3: dom ((comp V) | D) = D by RELAT_1:62;
A4: rng ((comp V) | D) c= D
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng ((comp V) | D) or x in D )
assume x in rng ((comp V) | D) ; :: thesis: x in D
then consider y being object such that
A5: y in dom ((comp V) | D) and
A6: ((comp V) | D) . y = x by FUNCT_1:def 3;
reconsider y = y as Element of V by A3, A5;
x = (comp V) . y by
.= - y by VECTSP_1:def 13 ;
hence x in D by A2, A3, A5, Th2; :: thesis: verum
end;
set M = the lmult of V | [: the carrier of GF,D:];
dom the lmult of V = [: the carrier of GF, the carrier of V:] by FUNCT_2:def 1;
then A7: dom ( the lmult of V | [: the carrier of GF,D:]) = [: the carrier of GF,D:] by ;
A8: rng ( the lmult of V | [: the carrier of GF,D:]) c= D
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng ( the lmult of V | [: the carrier of GF,D:]) or x in D )
assume x in rng ( the lmult of V | [: the carrier of GF,D:]) ; :: thesis: x in D
then consider y being object such that
A9: y in dom ( the lmult of V | [: the carrier of GF,D:]) and
A10: ( the lmult of V | [: the carrier of GF,D:]) . y = x by FUNCT_1:def 3;
consider y1, y2 being object such that
A11: [y1,y2] = y by ;
reconsider y1 = y1 as Element of GF by ;
A12: y2 in V1 by ;
then reconsider y2 = y2 as Element of V ;
x = y1 * y2 by ;
hence x in D by ; :: thesis: verum
end;
set A = the addF of V || D;
dom the addF of V = [: the carrier of V, the carrier of V:] by FUNCT_2:def 1;
then A13: dom ( the addF of V || D) = [:D,D:] by ;
A14: rng ( the addF of V || D) c= D
proof
let x be object ; :: according to TARSKI:def 3 :: thesis: ( not x in rng ( the addF of V || D) or x in D )
assume x in rng ( the addF of V || D) ; :: thesis: x in D
then consider y being object such that
A15: y in dom ( the addF of V || D) and
A16: ( the addF of V || D) . y = x by FUNCT_1:def 3;
consider y1, y2 being object such that
A17: [y1,y2] = y by ;
A18: ( y1 in D & y2 in D ) by ;
then reconsider y1 = y1, y2 = y2 as Element of V ;
x = y1 + y2 by ;
hence x in D by ; :: thesis: verum
end;
reconsider M = the lmult of V | [: the carrier of GF,D:] as Function of [: the carrier of GF,D:],D by ;
reconsider C = (comp V) | D as UnOp of D by ;
reconsider A = the addF of V || D as BinOp of D by ;
set W = ModuleStr(# D,A,d,M #);
A19: for a, b being Element of ModuleStr(# D,A,d,M #)
for x, y being Element of V st x = a & b = y holds
a + b = x + y
proof
let a, b be Element of ModuleStr(# D,A,d,M #); :: thesis: for x, y being Element of V st x = a & b = y holds
a + b = x + y

let x, y be Element of V; :: thesis: ( x = a & b = y implies a + b = x + y )
assume A20: ( x = a & b = y ) ; :: thesis: a + b = x + y
thus a + b = A . [a,b]
.= x + y by ; :: thesis: verum
end;
A21: ( ModuleStr(# D,A,d,M #) is Abelian & ModuleStr(# D,A,d,M #) is add-associative & ModuleStr(# D,A,d,M #) is right_zeroed & ModuleStr(# D,A,d,M #) is right_complementable )
proof
thus ModuleStr(# D,A,d,M #) is Abelian :: thesis: ( ModuleStr(# D,A,d,M #) is add-associative & ModuleStr(# D,A,d,M #) is right_zeroed & ModuleStr(# D,A,d,M #) is right_complementable )
proof
let a, b be Element of ModuleStr(# D,A,d,M #); :: according to RLVECT_1:def 2 :: thesis: a + b = b + a
reconsider x = a, y = b as Element of V by TARSKI:def 3;
thus a + b = y + x by A19
.= b + a by A19 ; :: thesis: verum
end;
hereby :: according to RLVECT_1:def 3 :: thesis: ( ModuleStr(# D,A,d,M #) is right_zeroed & ModuleStr(# D,A,d,M #) is right_complementable )
let a, b, c be Element of ModuleStr(# D,A,d,M #); :: thesis: (a + b) + c = a + (b + c)
reconsider x = a, y = b, z = c as Element of V by TARSKI:def 3;
A22: b + c = y + z by A19;
a + b = x + y by A19;
hence (a + b) + c = (x + y) + z by A19
.= x + (y + z) by RLVECT_1:def 3
.= a + (b + c) by ;
:: thesis: verum
end;
hereby :: according to RLVECT_1:def 4 :: thesis: ModuleStr(# D,A,d,M #) is right_complementable
let a be Element of ModuleStr(# D,A,d,M #); :: thesis: a + (0. ModuleStr(# D,A,d,M #)) = a
reconsider x = a as Element of V by TARSKI:def 3;
thus a + (0. ModuleStr(# D,A,d,M #)) = x + (0. V) by A19
.= a by RLVECT_1:4 ; :: thesis: verum
end;
let a be Element of ModuleStr(# D,A,d,M #); :: according to ALGSTR_0:def 16 :: thesis:
reconsider x = a as Element of V by TARSKI:def 3;
reconsider a9 = a as Element of D ;
reconsider b = C . a9 as Element of D ;
reconsider b = b as Element of ModuleStr(# D,A,d,M #) ;
take b ; :: according to ALGSTR_0:def 11 :: thesis: a + b = 0. ModuleStr(# D,A,d,M #)
thus a + b = x + ((comp V) . x) by
.= x + (- x) by VECTSP_1:def 13
.= 0. ModuleStr(# D,A,d,M #) by RLVECT_1:5 ; :: thesis: verum
end;
A23: ModuleStr(# D,A,d,M #) is vector-distributive
proof
let a be Element of GF; :: according to VECTSP_1:def 13 :: thesis: for b1, b2 being Element of the carrier of ModuleStr(# D,A,d,M #) holds a * (b1 + b2) = (a * b1) + (a * b2)
let v, w be Element of ModuleStr(# D,A,d,M #); :: thesis: a * (v + w) = (a * v) + (a * w)
reconsider x = v, y = w as Element of V by TARSKI:def 3;
A24: now :: thesis: for a being Element of GF
for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y
let a be Element of GF; :: thesis: for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y

let x be Element of ModuleStr(# D,A,d,M #); :: thesis: for y being Element of V st y = x holds
a * x = a * y

let y be Element of V; :: thesis: ( y = x implies a * x = a * y )
assume A25: y = x ; :: thesis: a * x = a * y
[a,x] in dom M by A7;
hence a * x = a * y by ; :: thesis: verum
end;
then A26: a * v = a * x ;
A27: a * w = a * y by A24;
v + w = x + y by A19;
hence a * (v + w) = a * (x + y) by A24
.= (a * x) + (a * y) by VECTSP_1:def 14
.= (a * v) + (a * w) by ;
:: thesis: verum
end;
A28: ModuleStr(# D,A,d,M #) is scalar-distributive
proof
let a, b be Element of GF; :: according to VECTSP_1:def 14 :: thesis: for b1 being Element of the carrier of ModuleStr(# D,A,d,M #) holds (a + b) * b1 = (a * b1) + (b * b1)
let v be Element of ModuleStr(# D,A,d,M #); :: thesis: (a + b) * v = (a * v) + (b * v)
reconsider x = v as Element of V by TARSKI:def 3;
A29: now :: thesis: for a being Element of GF
for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y
let a be Element of GF; :: thesis: for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y

let x be Element of ModuleStr(# D,A,d,M #); :: thesis: for y being Element of V st y = x holds
a * x = a * y

let y be Element of V; :: thesis: ( y = x implies a * x = a * y )
assume A30: y = x ; :: thesis: a * x = a * y
[a,x] in dom M by A7;
hence a * x = a * y by ; :: thesis: verum
end;
then A31: a * v = a * x ;
A32: b * v = b * x by A29;
thus (a + b) * v = (a + b) * x by A29
.= (a * x) + (b * x) by VECTSP_1:def 15
.= (a * v) + (b * v) by ; :: thesis: verum
end;
A33: ModuleStr(# D,A,d,M #) is scalar-associative
proof
let a, b be Element of GF; :: according to VECTSP_1:def 15 :: thesis: for b1 being Element of the carrier of ModuleStr(# D,A,d,M #) holds (a * b) * b1 = a * (b * b1)
let v be Element of ModuleStr(# D,A,d,M #); :: thesis: (a * b) * v = a * (b * v)
reconsider x = v as Element of V by TARSKI:def 3;
A34: now :: thesis: for a being Element of GF
for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y
let a be Element of GF; :: thesis: for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y

let x be Element of ModuleStr(# D,A,d,M #); :: thesis: for y being Element of V st y = x holds
a * x = a * y

let y be Element of V; :: thesis: ( y = x implies a * x = a * y )
assume A35: y = x ; :: thesis: a * x = a * y
[a,x] in dom M by A7;
hence a * x = a * y by ; :: thesis: verum
end;
then A36: b * v = b * x ;
thus (a * b) * v = (a * b) * x by A34
.= a * (b * x) by VECTSP_1:def 16
.= a * (b * v) by ; :: thesis: verum
end;
ModuleStr(# D,A,d,M #) is scalar-unital
proof
let v be Element of ModuleStr(# D,A,d,M #); :: according to VECTSP_1:def 16 :: thesis: (1. GF) * v = v
reconsider x = v as Element of V by TARSKI:def 3;
now :: thesis: for a being Element of GF
for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y
let a be Element of GF; :: thesis: for x being Element of ModuleStr(# D,A,d,M #)
for y being Element of V st y = x holds
a * x = a * y

let x be Element of ModuleStr(# D,A,d,M #); :: thesis: for y being Element of V st y = x holds
a * x = a * y

let y be Element of V; :: thesis: ( y = x implies a * x = a * y )
assume A37: y = x ; :: thesis: a * x = a * y
[a,x] in dom M by A7;
hence a * x = a * y by ; :: thesis: verum
end;
hence (1. GF) * v = (1_ GF) * x
.= v by VECTSP_1:def 17 ;
:: thesis: verum
end;
then reconsider W = ModuleStr(# D,A,d,M #) as non empty right_complementable vector-distributive scalar-distributive scalar-associative scalar-unital Abelian add-associative right_zeroed ModuleStr over GF by A21, A23, A28, A33;
0. W = 0. V ;
then reconsider W = W as strict Subspace of V by Def2;
take W ; :: thesis: V1 = the carrier of W
thus V1 = the carrier of W ; :: thesis: verum