:: O_RING_1 semantic presentation
begin
Lm1: for R being non empty doubleLoopStr
for h, f, g being FinSequence of R holds
( h = f ^ g iff ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) ) )
proof
let R be non empty doubleLoopStr ; ::_thesis: for h, f, g being FinSequence of R holds
( h = f ^ g iff ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) ) )
let h, f, g be FinSequence of R; ::_thesis: ( h = f ^ g iff ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) ) )
A1: len f >= 0 by NAT_1:2;
thus ( h = f ^ g implies ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) ) ) ::_thesis: ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) implies h = f ^ g )
proof
assume A2: h = f ^ g ; ::_thesis: ( dom h = Seg ((len f) + (len g)) & ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) )
hence dom h = Seg ((len f) + (len g)) by FINSEQ_1:def_7; ::_thesis: ( ( for k being Nat st k in dom f holds
h /. k = f /. k ) & ( for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ) )
then A3: len h = (len f) + (len g) by FINSEQ_1:def_3;
thus for k being Nat st k in dom f holds
h /. k = f /. k ::_thesis: for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k
proof
let k be Nat; ::_thesis: ( k in dom f implies h /. k = f /. k )
assume A4: k in dom f ; ::_thesis: h /. k = f /. k
( len f <= (len f) + (len g) & k <= len f ) by A4, FINSEQ_3:25, NAT_1:11;
then A5: k <= len h by A3, XXREAL_0:2;
1 <= k by A4, FINSEQ_3:25;
then k in dom h by A5, FINSEQ_3:25;
then h /. k = h . k by PARTFUN1:def_6
.= f . k by A2, A4, FINSEQ_1:def_7
.= f /. k by A4, PARTFUN1:def_6 ;
hence h /. k = f /. k ; ::_thesis: verum
end;
thus for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ::_thesis: verum
proof
let k be Nat; ::_thesis: ( k in dom g implies h /. ((len f) + k) = g /. k )
assume A6: k in dom g ; ::_thesis: h /. ((len f) + k) = g /. k
then k <= len g by FINSEQ_3:25;
then A7: (len f) + k <= (len f) + (len g) by XREAL_1:7;
1 <= k by A6, FINSEQ_3:25;
then 0 + 1 <= (len f) + k by A1, XREAL_1:7;
then (len f) + k in dom h by A3, A7, FINSEQ_3:25;
then h /. ((len f) + k) = h . ((len f) + k) by PARTFUN1:def_6
.= g . k by A2, A6, FINSEQ_1:def_7
.= g /. k by A6, PARTFUN1:def_6 ;
hence h /. ((len f) + k) = g /. k ; ::_thesis: verum
end;
end;
assume that
A8: dom h = Seg ((len f) + (len g)) and
A9: for k being Nat st k in dom f holds
h /. k = f /. k and
A10: for k being Nat st k in dom g holds
h /. ((len f) + k) = g /. k ; ::_thesis: h = f ^ g
A11: len h = (len f) + (len g) by A8, FINSEQ_1:def_3;
A12: for k being Nat st k in dom g holds
h . ((len f) + k) = g . k
proof
let k be Nat; ::_thesis: ( k in dom g implies h . ((len f) + k) = g . k )
assume A13: k in dom g ; ::_thesis: h . ((len f) + k) = g . k
then k <= len g by FINSEQ_3:25;
then A14: (len f) + k <= (len f) + (len g) by XREAL_1:7;
1 <= k by A13, FINSEQ_3:25;
then 0 + 1 <= (len f) + k by A1, XREAL_1:7;
then (len f) + k in dom h by A11, A14, FINSEQ_3:25;
then h . ((len f) + k) = h /. ((len f) + k) by PARTFUN1:def_6
.= g /. k by A10, A13
.= g . k by A13, PARTFUN1:def_6 ;
hence h . ((len f) + k) = g . k ; ::_thesis: verum
end;
for k being Nat st k in dom f holds
h . k = f . k
proof
let k be Nat; ::_thesis: ( k in dom f implies h . k = f . k )
assume A15: k in dom f ; ::_thesis: h . k = f . k
( len f <= (len f) + (len g) & k <= len f ) by A15, FINSEQ_3:25, NAT_1:11;
then A16: k <= len h by A11, XXREAL_0:2;
1 <= k by A15, FINSEQ_3:25;
then k in dom h by A16, FINSEQ_3:25;
then h . k = h /. k by PARTFUN1:def_6
.= f /. k by A9, A15
.= f . k by A15, PARTFUN1:def_6 ;
hence h . k = f . k ; ::_thesis: verum
end;
hence h = f ^ g by A8, A12, FINSEQ_1:def_7; ::_thesis: verum
end;
Lm2: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R holds
( f = <*x*> iff ( len f = 1 & f /. 1 = x ) )
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R holds
( f = <*x*> iff ( len f = 1 & f /. 1 = x ) )
let x be Scalar of R; ::_thesis: for f being FinSequence of R holds
( f = <*x*> iff ( len f = 1 & f /. 1 = x ) )
let f be FinSequence of R; ::_thesis: ( f = <*x*> iff ( len f = 1 & f /. 1 = x ) )
thus ( f = <*x*> implies ( len f = 1 & f /. 1 = x ) ) by FINSEQ_1:40, FINSEQ_4:16; ::_thesis: ( len f = 1 & f /. 1 = x implies f = <*x*> )
assume that
A1: len f = 1 and
A2: f /. 1 = x ; ::_thesis: f = <*x*>
1 in dom f by A1, FINSEQ_3:25;
then f . 1 = x by A2, PARTFUN1:def_6;
hence f = <*x*> by A1, FINSEQ_1:40; ::_thesis: verum
end;
Lm3: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R holds (f ^ <*x*>) /. ((len f) + 1) = x
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R holds (f ^ <*x*>) /. ((len f) + 1) = x
let x be Scalar of R; ::_thesis: for f being FinSequence of R holds (f ^ <*x*>) /. ((len f) + 1) = x
let f be FinSequence of R; ::_thesis: (f ^ <*x*>) /. ((len f) + 1) = x
A1: 1 <= (len f) + 1 by NAT_1:11;
(len f) + 1 = (len f) + (len <*x*>) by FINSEQ_1:39
.= len (f ^ <*x*>) by FINSEQ_1:22 ;
then (len f) + 1 in dom (f ^ <*x*>) by A1, FINSEQ_3:25;
then (f ^ <*x*>) /. ((len f) + 1) = (f ^ <*x*>) . ((len f) + 1) by PARTFUN1:def_6
.= x by FINSEQ_1:42 ;
hence (f ^ <*x*>) /. ((len f) + 1) = x ; ::_thesis: verum
end;
Lm4: for i being Nat
for R being non empty doubleLoopStr
for f, g being FinSequence of R st i <> 0 & i <= len f holds
(f ^ g) /. i = f /. i
proof
let i be Nat; ::_thesis: for R being non empty doubleLoopStr
for f, g being FinSequence of R st i <> 0 & i <= len f holds
(f ^ g) /. i = f /. i
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st i <> 0 & i <= len f holds
(f ^ g) /. i = f /. i
let f, g be FinSequence of R; ::_thesis: ( i <> 0 & i <= len f implies (f ^ g) /. i = f /. i )
assume that
A1: i <> 0 and
A2: i <= len f ; ::_thesis: (f ^ g) /. i = f /. i
0 <= i by NAT_1:2;
then 0 < i by A1, XXREAL_0:1;
then 0 + 1 <= i by NAT_1:13;
then i in dom f by A2, FINSEQ_3:25;
hence (f ^ g) /. i = f /. i by Lm1; ::_thesis: verum
end;
Lm5: for i being Nat
for R being non empty doubleLoopStr
for g, f being FinSequence of R st i <> 0 & i <= len g holds
(f ^ g) /. ((len f) + i) = g /. i
proof
let i be Nat; ::_thesis: for R being non empty doubleLoopStr
for g, f being FinSequence of R st i <> 0 & i <= len g holds
(f ^ g) /. ((len f) + i) = g /. i
let R be non empty doubleLoopStr ; ::_thesis: for g, f being FinSequence of R st i <> 0 & i <= len g holds
(f ^ g) /. ((len f) + i) = g /. i
let g, f be FinSequence of R; ::_thesis: ( i <> 0 & i <= len g implies (f ^ g) /. ((len f) + i) = g /. i )
assume that
A1: i <> 0 and
A2: i <= len g ; ::_thesis: (f ^ g) /. ((len f) + i) = g /. i
0 <= i by NAT_1:2;
then 0 < i by A1, XXREAL_0:1;
then 0 + 1 <= i by NAT_1:13;
then i in dom g by A2, FINSEQ_3:25;
hence (f ^ g) /. ((len f) + i) = g /. i by Lm1; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
funcx ^2 -> Scalar of R equals :: O_RING_1:def 1
x * x;
coherence
x * x is Scalar of R ;
end;
:: deftheorem defines ^2 O_RING_1:def_1_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds x ^2 = x * x;
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_a_square means :: O_RING_1:def 2
ex y being Scalar of R st x = y ^2 ;
end;
:: deftheorem defines being_a_square O_RING_1:def_2_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_a_square iff ex y being Scalar of R st x = y ^2 );
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_a_Sum_of_squares means :Def3: :: O_RING_1:def 3
( len f <> 0 & f /. 1 is being_a_square & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) + y ) ) );
end;
:: deftheorem Def3 defines being_a_Sum_of_squares O_RING_1:def_3_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_a_Sum_of_squares iff ( len f <> 0 & f /. 1 is being_a_square & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) + y ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_a_sum_of_squares means :Def4: :: O_RING_1:def 4
ex f being FinSequence of R st
( f is being_a_Sum_of_squares & x = f /. (len f) );
end;
:: deftheorem Def4 defines being_a_sum_of_squares O_RING_1:def_4_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_a_sum_of_squares iff ex f being FinSequence of R st
( f is being_a_Sum_of_squares & x = f /. (len f) ) );
Lm6: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_a_Sum_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_square ; ::_thesis: <*x*> is being_a_Sum_of_squares
then A4: <*x*> /. 1 is being_a_square by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_squares by A4, A1, Def3; ::_thesis: verum
end;
Lm7: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is being_a_sum_of_squares )
assume x is being_a_square ; ::_thesis: x is being_a_sum_of_squares
then A1: <*x*> is being_a_Sum_of_squares by Lm6;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_squares by A1, Def4; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_a_Product_of_squares means :Def5: :: O_RING_1:def 5
( len f <> 0 & f /. 1 is being_a_square & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) * y ) ) );
end;
:: deftheorem Def5 defines being_a_Product_of_squares O_RING_1:def_5_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_a_Product_of_squares iff ( len f <> 0 & f /. 1 is being_a_square & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) * y ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_a_product_of_squares means :Def6: :: O_RING_1:def 6
ex f being FinSequence of R st
( f is being_a_Product_of_squares & x = f /. (len f) );
end;
:: deftheorem Def6 defines being_a_product_of_squares O_RING_1:def_6_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_a_product_of_squares iff ex f being FinSequence of R st
( f is being_a_Product_of_squares & x = f /. (len f) ) );
Lm8: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Product_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Product_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_a_Product_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) * y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) * y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) * y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_a_square & <*x*> /. (n + 1) = (<*x*> /. n) * y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_square ; ::_thesis: <*x*> is being_a_Product_of_squares
then A4: <*x*> /. 1 is being_a_square by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Product_of_squares by A4, A1, Def5; ::_thesis: verum
end;
Lm9: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is being_a_product_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is being_a_product_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is being_a_product_of_squares )
assume x is being_a_square ; ::_thesis: x is being_a_product_of_squares
then A1: <*x*> is being_a_Product_of_squares by Lm8;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_product_of_squares by A1, Def6; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_a_Sum_of_products_of_squares means :Def7: :: O_RING_1:def 7
( len f <> 0 & f /. 1 is being_a_product_of_squares & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y ) ) );
end;
:: deftheorem Def7 defines being_a_Sum_of_products_of_squares O_RING_1:def_7_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_a_Sum_of_products_of_squares iff ( len f <> 0 & f /. 1 is being_a_product_of_squares & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_a_sum_of_products_of_squares means :Def8: :: O_RING_1:def 8
ex f being FinSequence of R st
( f is being_a_Sum_of_products_of_squares & x = f /. (len f) );
end;
:: deftheorem Def8 defines being_a_sum_of_products_of_squares O_RING_1:def_8_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_a_sum_of_products_of_squares iff ex f being FinSequence of R st
( f is being_a_Sum_of_products_of_squares & x = f /. (len f) ) );
Lm10: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_products_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_a_Sum_of_products_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_square ; ::_thesis: <*x*> is being_a_Sum_of_products_of_squares
then x is being_a_product_of_squares by Lm9;
then A4: <*x*> /. 1 is being_a_product_of_squares by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_products_of_squares by A4, A1, Def7; ::_thesis: verum
end;
Lm11: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_products_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is being_a_sum_of_products_of_squares )
assume x is being_a_square ; ::_thesis: x is being_a_sum_of_products_of_squares
then A1: <*x*> is being_a_Sum_of_products_of_squares by Lm10;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_products_of_squares by A1, Def8; ::_thesis: verum
end;
Lm12: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_Sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_Sum_of_products_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies <*x*> is being_a_Sum_of_products_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_product_of_squares ; ::_thesis: <*x*> is being_a_Sum_of_products_of_squares
then A4: <*x*> /. 1 is being_a_product_of_squares by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_products_of_squares by A4, A1, Def7; ::_thesis: verum
end;
Lm13: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
x is being_a_sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
x is being_a_sum_of_products_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies x is being_a_sum_of_products_of_squares )
assume x is being_a_product_of_squares ; ::_thesis: x is being_a_sum_of_products_of_squares
then A1: <*x*> is being_a_Sum_of_products_of_squares by Lm12;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_products_of_squares by A1, Def8; ::_thesis: verum
end;
Lm14: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_squares holds
f is being_a_Sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_squares holds
f is being_a_Sum_of_products_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_squares implies f is being_a_Sum_of_products_of_squares )
assume A1: f is being_a_Sum_of_squares ; ::_thesis: f is being_a_Sum_of_products_of_squares
then f /. 1 is being_a_square by Def3;
then A2: f /. 1 is being_a_product_of_squares by Lm9;
A3: for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len f implies ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y ) )
assume ( n <> 0 & n < len f ) ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y )
then ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) + y ) by A1, Def3;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y ) by Lm9; ::_thesis: verum
end;
len f <> 0 by A1, Def3;
hence f is being_a_Sum_of_products_of_squares by A2, A3, Def7; ::_thesis: verum
end;
Lm15: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_squares holds
x is being_a_sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_squares holds
x is being_a_sum_of_products_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares implies x is being_a_sum_of_products_of_squares )
assume x is being_a_sum_of_squares ; ::_thesis: x is being_a_sum_of_products_of_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_squares and
A2: x = f /. (len f) by Def4;
f is being_a_Sum_of_products_of_squares by A1, Lm14;
hence x is being_a_sum_of_products_of_squares by A2, Def8; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_an_Amalgam_of_squares means :Def9: :: O_RING_1:def 9
( len f <> 0 & ( for n being Nat st n <> 0 & n <= len f & not f /. n is being_a_product_of_squares holds
ex i, j being Nat st
( f /. n = (f /. i) * (f /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) );
end;
:: deftheorem Def9 defines being_an_Amalgam_of_squares O_RING_1:def_9_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_an_Amalgam_of_squares iff ( len f <> 0 & ( for n being Nat st n <> 0 & n <= len f & not f /. n is being_a_product_of_squares holds
ex i, j being Nat st
( f /. n = (f /. i) * (f /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_an_amalgam_of_squares means :Def10: :: O_RING_1:def 10
ex f being FinSequence of R st
( f is being_an_Amalgam_of_squares & x = f /. (len f) );
end;
:: deftheorem Def10 defines being_an_amalgam_of_squares O_RING_1:def_10_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_an_amalgam_of_squares iff ex f being FinSequence of R st
( f is being_an_Amalgam_of_squares & x = f /. (len f) ) );
Lm16: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_an_Amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_an_Amalgam_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_an_Amalgam_of_squares )
assume x is being_a_square ; ::_thesis: <*x*> is being_an_Amalgam_of_squares
then x is being_a_product_of_squares by Lm9;
then A1: <*x*> /. 1 is being_a_product_of_squares by Lm2;
A2: for n being Nat st n <> 0 & n <= len <*x*> & not <*x*> /. n is being_a_product_of_squares holds
ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len <*x*> & not <*x*> /. n is being_a_product_of_squares implies ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A3: n <> 0 and
A4: n <= len <*x*> ; ::_thesis: ( <*x*> /. n is being_a_product_of_squares or ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
n <= 1 by A4, Lm2;
hence ( <*x*> /. n is being_a_product_of_squares or ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A3, NAT_1:25; ::_thesis: verum
end;
len <*x*> = 1 by Lm2;
hence <*x*> is being_an_Amalgam_of_squares by A2, Def9; ::_thesis: verum
end;
Lm17: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is being_an_amalgam_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is being_an_amalgam_of_squares )
assume x is being_a_square ; ::_thesis: x is being_an_amalgam_of_squares
then A1: <*x*> is being_an_Amalgam_of_squares by Lm16;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_an_amalgam_of_squares by A1, Def10; ::_thesis: verum
end;
Lm18: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_an_Amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_an_Amalgam_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies <*x*> is being_an_Amalgam_of_squares )
assume x is being_a_product_of_squares ; ::_thesis: <*x*> is being_an_Amalgam_of_squares
then A1: <*x*> /. 1 is being_a_product_of_squares by Lm2;
A2: for n being Nat st n <> 0 & n <= len <*x*> & not <*x*> /. n is being_a_product_of_squares holds
ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len <*x*> & not <*x*> /. n is being_a_product_of_squares implies ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A3: n <> 0 and
A4: n <= len <*x*> ; ::_thesis: ( <*x*> /. n is being_a_product_of_squares or ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
n <= 1 by A4, Lm2;
hence ( <*x*> /. n is being_a_product_of_squares or ex i, j being Nat st
( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A3, NAT_1:25; ::_thesis: verum
end;
len <*x*> = 1 by Lm2;
hence <*x*> is being_an_Amalgam_of_squares by A2, Def9; ::_thesis: verum
end;
Lm19: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
x is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
x is being_an_amalgam_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies x is being_an_amalgam_of_squares )
assume x is being_a_product_of_squares ; ::_thesis: x is being_an_amalgam_of_squares
then A1: <*x*> is being_an_Amalgam_of_squares by Lm18;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_an_amalgam_of_squares by A1, Def10; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_a_Sum_of_amalgams_of_squares means :Def11: :: O_RING_1:def 11
( len f <> 0 & f /. 1 is being_an_amalgam_of_squares & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) ) );
end;
:: deftheorem Def11 defines being_a_Sum_of_amalgams_of_squares O_RING_1:def_11_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_a_Sum_of_amalgams_of_squares iff ( len f <> 0 & f /. 1 is being_an_amalgam_of_squares & ( for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is being_a_sum_of_amalgams_of_squares means :Def12: :: O_RING_1:def 12
ex f being FinSequence of R st
( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) );
end;
:: deftheorem Def12 defines being_a_sum_of_amalgams_of_squares O_RING_1:def_12_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is being_a_sum_of_amalgams_of_squares iff ex f being FinSequence of R st
( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) );
Lm20: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_Sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_a_Sum_of_amalgams_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_square ; ::_thesis: <*x*> is being_a_Sum_of_amalgams_of_squares
then x is being_an_amalgam_of_squares by Lm17;
then A4: <*x*> /. 1 is being_an_amalgam_of_squares by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_amalgams_of_squares by A4, A1, Def11; ::_thesis: verum
end;
Lm21: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is being_a_sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is being_a_sum_of_amalgams_of_squares )
assume x is being_a_square ; ::_thesis: x is being_a_sum_of_amalgams_of_squares
then A1: <*x*> is being_a_Sum_of_amalgams_of_squares by Lm20;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_amalgams_of_squares by A1, Def12; ::_thesis: verum
end;
Lm22: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_squares holds
f is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_squares holds
f is being_a_Sum_of_amalgams_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_squares implies f is being_a_Sum_of_amalgams_of_squares )
assume A1: f is being_a_Sum_of_squares ; ::_thesis: f is being_a_Sum_of_amalgams_of_squares
then f /. 1 is being_a_square by Def3;
then A2: f /. 1 is being_an_amalgam_of_squares by Lm17;
A3: for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len f implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) )
assume ( n <> 0 & n < len f ) ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y )
then ex y being Scalar of R st
( y is being_a_square & f /. (n + 1) = (f /. n) + y ) by A1, Def3;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) by Lm17; ::_thesis: verum
end;
len f <> 0 by A1, Def3;
hence f is being_a_Sum_of_amalgams_of_squares by A2, A3, Def11; ::_thesis: verum
end;
Lm23: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_squares holds
x is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_squares holds
x is being_a_sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares implies x is being_a_sum_of_amalgams_of_squares )
assume x is being_a_sum_of_squares ; ::_thesis: x is being_a_sum_of_amalgams_of_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_squares and
A2: x = f /. (len f) by Def4;
f is being_a_Sum_of_amalgams_of_squares by A1, Lm22;
hence x is being_a_sum_of_amalgams_of_squares by A2, Def12; ::_thesis: verum
end;
Lm24: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_Sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies <*x*> is being_a_Sum_of_amalgams_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_a_product_of_squares ; ::_thesis: <*x*> is being_a_Sum_of_amalgams_of_squares
then x is being_an_amalgam_of_squares by Lm19;
then A4: <*x*> /. 1 is being_an_amalgam_of_squares by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_amalgams_of_squares by A4, A1, Def11; ::_thesis: verum
end;
Lm25: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
x is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
x is being_a_sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies x is being_a_sum_of_amalgams_of_squares )
assume x is being_a_product_of_squares ; ::_thesis: x is being_a_sum_of_amalgams_of_squares
then A1: <*x*> is being_a_Sum_of_amalgams_of_squares by Lm24;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_amalgams_of_squares by A1, Def12; ::_thesis: verum
end;
Lm26: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_products_of_squares holds
f is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_products_of_squares holds
f is being_a_Sum_of_amalgams_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_products_of_squares implies f is being_a_Sum_of_amalgams_of_squares )
assume A1: f is being_a_Sum_of_products_of_squares ; ::_thesis: f is being_a_Sum_of_amalgams_of_squares
then f /. 1 is being_a_product_of_squares by Def7;
then A2: f /. 1 is being_an_amalgam_of_squares by Lm19;
A3: for n being Nat st n <> 0 & n < len f holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len f implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) )
assume ( n <> 0 & n < len f ) ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y )
then ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (n + 1) = (f /. n) + y ) by A1, Def7;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (n + 1) = (f /. n) + y ) by Lm19; ::_thesis: verum
end;
len f <> 0 by A1, Def7;
hence f is being_a_Sum_of_amalgams_of_squares by A2, A3, Def11; ::_thesis: verum
end;
Lm27: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_products_of_squares holds
x is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_products_of_squares holds
x is being_a_sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares implies x is being_a_sum_of_amalgams_of_squares )
assume x is being_a_sum_of_products_of_squares ; ::_thesis: x is being_a_sum_of_amalgams_of_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_products_of_squares and
A2: x = f /. (len f) by Def8;
f is being_a_Sum_of_amalgams_of_squares by A1, Lm26;
hence x is being_a_sum_of_amalgams_of_squares by A2, Def12; ::_thesis: verum
end;
Lm28: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_an_amalgam_of_squares holds
<*x*> is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_an_amalgam_of_squares holds
<*x*> is being_a_Sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares implies <*x*> is being_a_Sum_of_amalgams_of_squares )
A1: for n being Nat st n <> 0 & n < len <*x*> holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len <*x*> implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) )
assume that
A2: n <> 0 and
A3: n < len <*x*> ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y )
n < 1 by A3, Lm2;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & <*x*> /. (n + 1) = (<*x*> /. n) + y ) by A2, NAT_1:25; ::_thesis: verum
end;
assume x is being_an_amalgam_of_squares ; ::_thesis: <*x*> is being_a_Sum_of_amalgams_of_squares
then A4: <*x*> /. 1 is being_an_amalgam_of_squares by Lm2;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_Sum_of_amalgams_of_squares by A4, A1, Def11; ::_thesis: verum
end;
Lm29: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_an_amalgam_of_squares holds
x is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_an_amalgam_of_squares holds
x is being_a_sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares implies x is being_a_sum_of_amalgams_of_squares )
assume x is being_an_amalgam_of_squares ; ::_thesis: x is being_a_sum_of_amalgams_of_squares
then A1: <*x*> is being_a_Sum_of_amalgams_of_squares by Lm28;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is being_a_sum_of_amalgams_of_squares by A1, Def12; ::_thesis: verum
end;
definition
let R be non empty doubleLoopStr ;
let f be FinSequence of R;
attrf is being_a_generation_from_squares means :Def13: :: O_RING_1:def 13
( len f <> 0 & ( for n being Nat st n <> 0 & n <= len f & not f /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) );
end;
:: deftheorem Def13 defines being_a_generation_from_squares O_RING_1:def_13_:_
for R being non empty doubleLoopStr
for f being FinSequence of R holds
( f is being_a_generation_from_squares iff ( len f <> 0 & ( for n being Nat st n <> 0 & n <= len f & not f /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) ) );
definition
let R be non empty doubleLoopStr ;
let x be Scalar of R;
attrx is generated_from_squares means :Def14: :: O_RING_1:def 14
ex f being FinSequence of R st
( f is being_a_generation_from_squares & x = f /. (len f) );
end;
:: deftheorem Def14 defines generated_from_squares O_RING_1:def_14_:_
for R being non empty doubleLoopStr
for x being Scalar of R holds
( x is generated_from_squares iff ex f being FinSequence of R st
( f is being_a_generation_from_squares & x = f /. (len f) ) );
Lm30: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
<*x*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies <*x*> is being_a_generation_from_squares )
assume x is being_a_square ; ::_thesis: <*x*> is being_a_generation_from_squares
then x is being_an_amalgam_of_squares by Lm17;
then A1: <*x*> /. 1 is being_an_amalgam_of_squares by Lm2;
A2: for n being Nat st n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A3: n <> 0 and
A4: n <= len <*x*> ; ::_thesis: ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
n <= 1 by A4, Lm2;
hence ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A3, NAT_1:25; ::_thesis: verum
end;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_generation_from_squares by A2, Def13; ::_thesis: verum
end;
Lm31: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_square holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_square implies x is generated_from_squares )
assume x is being_a_square ; ::_thesis: x is generated_from_squares
then A1: <*x*> is being_a_generation_from_squares by Lm30;
( len <*x*> = 1 & <*x*> /. 1 = x ) by Lm2;
hence x is generated_from_squares by A1, Def14; ::_thesis: verum
end;
Lm32: for i, j being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
proof
let i, j be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f implies f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: i <> 0 and
A3: i <= len f and
A4: j <> 0 and
A5: j <= len f ; ::_thesis: f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
set g = f ^ <*((f /. i) + (f /. j))*>;
A6: len (f ^ <*((f /. i) + (f /. j))*>) = (len f) + (len <*((f /. i) + (f /. j))*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A7: for n being Nat st n <> 0 & n <= len (f ^ <*((f /. i) + (f /. j))*>) & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ <*((f /. i) + (f /. j))*>) & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A8: n <> 0 and
A9: n <= len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A10: now__::_thesis:_(_n_<_len_(f_^_<*((f_/._i)_+_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume n < len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A11: n <= len f by A6, NAT_1:13;
then A12: (f ^ <*((f /. i) + (f /. j))*>) /. n = f /. n by A8, Lm4;
A13: now__::_thesis:_(_ex_k,_m_being_Nat_st_
(_(_f_/._n_=_(f_/._k)_*_(f_/._m)_or_f_/._n_=_(f_/._k)_+_(f_/._m)_)_&_k_<>_0_&_k_<_n_&_m_<>_0_&_m_<_n_)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, m being Nat such that A14: ( f /. n = (f /. k) * (f /. m) or f /. n = (f /. k) + (f /. m) ) and
A15: ( k <> 0 & k < n & m <> 0 & m < n ) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
( f /. k = (f ^ <*((f /. i) + (f /. j))*>) /. k & f /. m = (f ^ <*((f /. i) + (f /. j))*>) /. m ) by A11, A15, Lm4, XXREAL_0:2;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A12, A14, A15; ::_thesis: verum
end;
( f /. n is being_an_amalgam_of_squares & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A8, A11, Lm4;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A8, A11, A13, Def13; ::_thesis: verum
end;
now__::_thesis:_(_n_=_len_(f_^_<*((f_/._i)_+_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A16: n = len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A17: ( i < n & j < n ) by A3, A5, A6, NAT_1:13;
(f ^ <*((f /. i) + (f /. j))*>) /. n = (f /. i) + (f /. j) by A6, A16, Lm3
.= ((f ^ <*((f /. i) + (f /. j))*>) /. i) + (f /. j) by A2, A3, Lm4
.= ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) by A4, A5, Lm4 ;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A4, A17; ::_thesis: verum
end;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A10, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def13;
then (len f) + (len <*((f /. i) + (f /. j))*>) <> 0 by NAT_1:7;
then len (f ^ <*((f /. i) + (f /. j))*>) <> 0 by FINSEQ_1:22;
hence f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares by A7, Def13; ::_thesis: verum
end;
Lm33: for R being non empty doubleLoopStr
for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
f ^ g is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
f ^ g is being_a_generation_from_squares
let f, g be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & g is being_a_generation_from_squares implies f ^ g is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: g is being_a_generation_from_squares ; ::_thesis: f ^ g is being_a_generation_from_squares
A3: for n being Nat st n <> 0 & n <= len (f ^ g) & not (f ^ g) /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ g) & not (f ^ g) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A4: n <> 0 and
A5: n <= len (f ^ g) ; ::_thesis: ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A6: n <= (len f) + (len g) by A5, FINSEQ_1:22;
A7: now__::_thesis:_(_len_f_<_n_&_not_(f_^_g)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_or_(f_^_g)_/._n_=_((f_^_g)_/._i)_+_((f_^_g)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A8: len f < n ; ::_thesis: ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then consider m being Nat such that
A9: n = (len f) + m by NAT_1:10;
(len f) + m <= (len f) + (len g) by A5, A9, FINSEQ_1:22;
then A10: m <= len g by XREAL_1:6;
A11: m <> 0 by A8, A9;
A12: m <= len g by A6, A9, XREAL_1:6;
A13: now__::_thesis:_(_ex_k,_l_being_Nat_st_
(_(_g_/._m_=_(g_/._k)_*_(g_/._l)_or_g_/._m_=_(g_/._k)_+_(g_/._l)_)_&_k_<>_0_&_k_<_m_&_l_<>_0_&_l_<_m_)_&_not_(f_^_g)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_or_(f_^_g)_/._n_=_((f_^_g)_/._i)_+_((f_^_g)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, l being Nat such that A14: ( g /. m = (g /. k) * (g /. l) or g /. m = (g /. k) + (g /. l) ) and
A15: k <> 0 and
A16: k < m and
A17: l <> 0 and
A18: l < m ; ::_thesis: ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A19: ( (len f) + k <> 0 & (len f) + l <> 0 ) by A15, A17, NAT_1:7;
A20: ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) )
proof
A21: now__::_thesis:_(_not_g_/._m_=_(g_/._k)_+_(g_/._l)_or_(f_^_g)_/._n_=_((f_^_g)_/._((len_f)_+_k))_*_((f_^_g)_/._((len_f)_+_l))_or_(f_^_g)_/._n_=_((f_^_g)_/._((len_f)_+_k))_+_((f_^_g)_/._((len_f)_+_l))_)
assume g /. m = (g /. k) + (g /. l) ; ::_thesis: ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) )
then (f ^ g) /. n = (g /. k) + (g /. l) by A9, A11, A10, Lm5
.= ((f ^ g) /. ((len f) + k)) + (g /. l) by A12, A15, A16, Lm5, XXREAL_0:2
.= ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) by A12, A17, A18, Lm5, XXREAL_0:2 ;
hence ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) ) ; ::_thesis: verum
end;
now__::_thesis:_(_not_g_/._m_=_(g_/._k)_*_(g_/._l)_or_(f_^_g)_/._n_=_((f_^_g)_/._((len_f)_+_k))_*_((f_^_g)_/._((len_f)_+_l))_or_(f_^_g)_/._n_=_((f_^_g)_/._((len_f)_+_k))_+_((f_^_g)_/._((len_f)_+_l))_)
assume g /. m = (g /. k) * (g /. l) ; ::_thesis: ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) )
then (f ^ g) /. n = (g /. k) * (g /. l) by A9, A11, A10, Lm5
.= ((f ^ g) /. ((len f) + k)) * (g /. l) by A12, A15, A16, Lm5, XXREAL_0:2
.= ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) by A12, A17, A18, Lm5, XXREAL_0:2 ;
hence ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) ) ; ::_thesis: verum
end;
hence ( (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) or (f ^ g) /. n = ((f ^ g) /. ((len f) + k)) + ((f ^ g) /. ((len f) + l)) ) by A14, A21; ::_thesis: verum
end;
( (len f) + k < n & (len f) + l < n ) by A9, A16, A18, XREAL_1:6;
hence ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A20, A19; ::_thesis: verum
end;
( g /. m is being_an_amalgam_of_squares & not (f ^ g) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A11, A10, Lm5;
hence ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A11, A10, A13, Def13; ::_thesis: verum
end;
now__::_thesis:_(_n_<=_len_f_&_not_(f_^_g)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_or_(f_^_g)_/._n_=_((f_^_g)_/._i)_+_((f_^_g)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A22: n <= len f ; ::_thesis: ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A23: (f ^ g) /. n = f /. n by A4, Lm4;
A24: now__::_thesis:_(_ex_k,_l_being_Nat_st_
(_(_f_/._n_=_(f_/._k)_*_(f_/._l)_or_f_/._n_=_(f_/._k)_+_(f_/._l)_)_&_k_<>_0_&_k_<_n_&_l_<>_0_&_l_<_n_)_&_not_(f_^_g)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_or_(f_^_g)_/._n_=_((f_^_g)_/._i)_+_((f_^_g)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, l being Nat such that A25: ( f /. n = (f /. k) * (f /. l) or f /. n = (f /. k) + (f /. l) ) and
A26: ( k <> 0 & k < n & l <> 0 & l < n ) ; ::_thesis: ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
( (f ^ g) /. k = f /. k & (f ^ g) /. l = f /. l ) by A22, A26, Lm4, XXREAL_0:2;
hence ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A23, A25, A26; ::_thesis: verum
end;
( f /. n is being_an_amalgam_of_squares & not (f ^ g) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A4, A22, Lm4;
hence ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A4, A22, A24, Def13; ::_thesis: verum
end;
hence ( (f ^ g) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) or (f ^ g) /. n = ((f ^ g) /. i) + ((f ^ g) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A7; ::_thesis: verum
end;
len f <> 0 by A1, Def13;
then (len f) + (len g) <> 0 by NAT_1:7;
then len (f ^ g) <> 0 by FINSEQ_1:22;
hence f ^ g is being_a_generation_from_squares by A3, Def13; ::_thesis: verum
end;
Lm34: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
f ^ <*x*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
f ^ <*x*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
f ^ <*x*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & x is being_a_square implies f ^ <*x*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: x is being_a_square ; ::_thesis: f ^ <*x*> is being_a_generation_from_squares
<*x*> is being_a_generation_from_squares by A2, Lm30;
hence f ^ <*x*> is being_a_generation_from_squares by A1, Lm33; ::_thesis: verum
end;
Lm35: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & x is being_a_square implies (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: x is being_a_square ; ::_thesis: (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
A3: f ^ <*x*> is being_a_generation_from_squares by A1, A2, Lm34;
len <*x*> = 1 by Lm2;
then A4: (len f) + 1 = len (f ^ <*x*>) by FINSEQ_1:22;
A5: ( len f <= (len f) + 1 & (len f) + 1 <> 0 ) by NAT_1:5, NAT_1:11;
A6: (f ^ <*x*>) /. ((len f) + 1) = x by Lm3;
A7: len f <> 0 by A1, Def13;
then (f ^ <*x*>) /. (len f) = f /. (len f) by Lm4;
hence (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares by A3, A7, A5, A4, A6, Lm32; ::_thesis: verum
end;
Lm36: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_square implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_square ; ::_thesis: x + y is generated_from_squares
consider f being FinSequence of R such that
A3: ( f is being_a_generation_from_squares & x = f /. (len f) ) by A1, Def14;
take g = (f ^ <*y*>) ^ <*((f /. (len f)) + y)*>; :: according to O_RING_1:def_14 ::_thesis: ( g is being_a_generation_from_squares & x + y = g /. (len g) )
len g = (len (f ^ <*y*>)) + (len <*((f /. (len f)) + y)*>) by FINSEQ_1:22
.= (len (f ^ <*y*>)) + 1 by Lm2 ;
hence ( g is being_a_generation_from_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm35; ::_thesis: verum
end;
Lm37: for i being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
proof
let i be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_squares & 0 <> i & i <= len f implies f /. i is generated_from_squares )
assume that
A1: f is being_a_Sum_of_squares and
A2: ( 0 <> i & i <= len f ) ; ::_thesis: f /. i is generated_from_squares
defpred S1[ Nat] means ( 0 <> $1 & $1 <= len f implies f /. $1 is generated_from_squares );
A3: for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be Nat; ::_thesis: ( S1[i] implies S1[i + 1] )
assume A4: ( 0 <> i & i <= len f implies f /. i is generated_from_squares ) ; ::_thesis: S1[i + 1]
assume that
0 <> i + 1 and
A5: i + 1 <= len f ; ::_thesis: f /. (i + 1) is generated_from_squares
A6: i < len f by A5, NAT_1:13;
A7: now__::_thesis:_(_i_<>_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume A8: i <> 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then ex y being Scalar of R st
( y is being_a_square & f /. (i + 1) = (f /. i) + y ) by A1, A6, Def3;
hence f /. (i + 1) is generated_from_squares by A4, A5, A8, Lm36, NAT_1:13; ::_thesis: verum
end;
now__::_thesis:_(_i_=_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume i = 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then f /. (i + 1) is being_a_square by A1, Def3;
hence f /. (i + 1) is generated_from_squares by Lm31; ::_thesis: verum
end;
hence f /. (i + 1) is generated_from_squares by A7; ::_thesis: verum
end;
A9: S1[ 0 ] ;
for i being Nat holds S1[i] from NAT_1:sch_2(A9, A3);
hence f /. i is generated_from_squares by A2; ::_thesis: verum
end;
Lm38: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_squares holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_squares holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares implies x is generated_from_squares )
assume x is being_a_sum_of_squares ; ::_thesis: x is generated_from_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_squares and
A2: x = f /. (len f) by Def4;
0 <> len f by A1, Def3;
hence x is generated_from_squares by A1, A2, Lm37; ::_thesis: verum
end;
Lm39: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_an_Amalgam_of_squares holds
f is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_an_Amalgam_of_squares holds
f is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_an_Amalgam_of_squares implies f is being_a_generation_from_squares )
assume A1: f is being_an_Amalgam_of_squares ; ::_thesis: f is being_a_generation_from_squares
hence len f <> 0 by Def9; :: according to O_RING_1:def_13 ::_thesis: for n being Nat st n <> 0 & n <= len f & not f /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
let n be Nat; ::_thesis: ( n <> 0 & n <= len f & not f /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume A2: ( n <> 0 & n <= len f ) ; ::_thesis: ( f /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A3: ( ex i, j being Nat st
( f /. n = (f /. i) * (f /. j) & i <> 0 & i < n & j <> 0 & j < n ) & not f /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) ;
( f /. n is being_a_product_of_squares & not f /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by Lm19;
hence ( f /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( f /. n = (f /. i) * (f /. j) or f /. n = (f /. i) + (f /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A2, A3, Def9; ::_thesis: verum
end;
Lm40: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_an_amalgam_of_squares holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_an_amalgam_of_squares holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares implies x is generated_from_squares )
assume x is being_an_amalgam_of_squares ; ::_thesis: x is generated_from_squares
then consider f being FinSequence of R such that
A1: f is being_an_Amalgam_of_squares and
A2: x = f /. (len f) by Def10;
f is being_a_generation_from_squares by A1, Lm39;
hence x is generated_from_squares by A2, Def14; ::_thesis: verum
end;
Lm41: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_an_amalgam_of_squares holds
<*x*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_an_amalgam_of_squares holds
<*x*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares implies <*x*> is being_a_generation_from_squares )
set g = <*x*>;
assume A1: x is being_an_amalgam_of_squares ; ::_thesis: <*x*> is being_a_generation_from_squares
A2: for n being Nat st n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A3: n <> 0 and
A4: n <= len <*x*> ; ::_thesis: ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
n <= 1 by A4, Lm2;
then n < 1 + 1 by NAT_1:13;
then n = 1 by A3, NAT_1:23;
hence ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, Lm2; ::_thesis: verum
end;
len <*x*> = 1 by Lm2;
hence <*x*> is being_a_generation_from_squares by A2, Def13; ::_thesis: verum
end;
Lm42: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_an_amalgam_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_an_amalgam_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & x is being_an_amalgam_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & x is being_an_amalgam_of_squares implies (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: x is being_an_amalgam_of_squares ; ::_thesis: (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
<*x*> is being_a_generation_from_squares by A2, Lm41;
then A3: f ^ <*x*> is being_a_generation_from_squares by A1, Lm33;
len <*x*> = 1 by Lm2;
then A4: (len f) + 1 = len (f ^ <*x*>) by FINSEQ_1:22;
A5: ( len f <= (len f) + 1 & (len f) + 1 <> 0 ) by NAT_1:5, NAT_1:11;
A6: (f ^ <*x*>) /. ((len f) + 1) = x by Lm3;
A7: len f <> 0 by A1, Def13;
then (f ^ <*x*>) /. (len f) = f /. (len f) by Lm4;
hence (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares by A3, A7, A5, A4, A6, Lm32; ::_thesis: verum
end;
Lm43: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_an_amalgam_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x + y is generated_from_squares
consider f being FinSequence of R such that
A3: ( f is being_a_generation_from_squares & x = f /. (len f) ) by A1, Def14;
take g = (f ^ <*y*>) ^ <*((f /. (len f)) + y)*>; :: according to O_RING_1:def_14 ::_thesis: ( g is being_a_generation_from_squares & x + y = g /. (len g) )
len g = (len (f ^ <*y*>)) + (len <*((f /. (len f)) + y)*>) by FINSEQ_1:22
.= (len (f ^ <*y*>)) + 1 by Lm2 ;
hence ( g is being_a_generation_from_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm42; ::_thesis: verum
end;
Lm44: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_amalgams_of_squares holds
for i being Nat st i <> 0 & i <= len f holds
f /. i is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_amalgams_of_squares holds
for i being Nat st i <> 0 & i <= len f holds
f /. i is generated_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_amalgams_of_squares implies for i being Nat st i <> 0 & i <= len f holds
f /. i is generated_from_squares )
defpred S1[ Nat] means ( $1 <> 0 & $1 <= len f implies f /. $1 is generated_from_squares );
assume A1: f is being_a_Sum_of_amalgams_of_squares ; ::_thesis: for i being Nat st i <> 0 & i <= len f holds
f /. i is generated_from_squares
A2: for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be Nat; ::_thesis: ( S1[i] implies S1[i + 1] )
assume A3: ( i <> 0 & i <= len f implies f /. i is generated_from_squares ) ; ::_thesis: S1[i + 1]
assume that
i + 1 <> 0 and
A4: i + 1 <= len f ; ::_thesis: f /. (i + 1) is generated_from_squares
A5: now__::_thesis:_(_i_<>_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume A6: i <> 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
i < len f by A4, NAT_1:13;
then ex y being Scalar of R st
( y is being_an_amalgam_of_squares & f /. (i + 1) = (f /. i) + y ) by A1, A6, Def11;
hence f /. (i + 1) is generated_from_squares by A3, A4, A6, Lm43, NAT_1:13; ::_thesis: verum
end;
now__::_thesis:_(_i_=_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume i = 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then f /. (i + 1) is being_an_amalgam_of_squares by A1, Def11;
hence f /. (i + 1) is generated_from_squares by Lm40; ::_thesis: verum
end;
hence f /. (i + 1) is generated_from_squares by A5; ::_thesis: verum
end;
A7: S1[ 0 ] ;
thus for i being Nat holds S1[i] from NAT_1:sch_2(A7, A2); ::_thesis: verum
end;
theorem Th1: :: O_RING_1:1
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_amalgams_of_squares holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_amalgams_of_squares holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares implies x is generated_from_squares )
assume x is being_a_sum_of_amalgams_of_squares ; ::_thesis: x is generated_from_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_amalgams_of_squares and
A2: x = f /. (len f) by Def12;
len f <> 0 by A1, Def11;
hence x is generated_from_squares by A1, A2, Lm44; ::_thesis: verum
end;
Lm45: for i, j being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
proof
let i, j be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f implies f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: i <> 0 and
A3: i <= len f and
A4: j <> 0 and
A5: j <= len f ; ::_thesis: f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
set g = f ^ <*((f /. i) * (f /. j))*>;
A6: len (f ^ <*((f /. i) * (f /. j))*>) = (len f) + (len <*((f /. i) * (f /. j))*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A7: for n being Nat st n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A8: n <> 0 and
A9: n <= len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A10: now__::_thesis:_(_n_<_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume n < len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A11: n <= len f by A6, NAT_1:13;
then A12: (f ^ <*((f /. i) * (f /. j))*>) /. n = f /. n by A8, Lm4;
A13: now__::_thesis:_(_ex_k,_m_being_Nat_st_
(_(_f_/._n_=_(f_/._k)_*_(f_/._m)_or_f_/._n_=_(f_/._k)_+_(f_/._m)_)_&_k_<>_0_&_k_<_n_&_m_<>_0_&_m_<_n_)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, m being Nat such that A14: ( f /. n = (f /. k) * (f /. m) or f /. n = (f /. k) + (f /. m) ) and
A15: ( k <> 0 & k < n & m <> 0 & m < n ) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
( f /. k = (f ^ <*((f /. i) * (f /. j))*>) /. k & f /. m = (f ^ <*((f /. i) * (f /. j))*>) /. m ) by A11, A15, Lm4, XXREAL_0:2;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A12, A14, A15; ::_thesis: verum
end;
( f /. n is being_an_amalgam_of_squares & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A8, A11, Lm4;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A8, A11, A13, Def13; ::_thesis: verum
end;
now__::_thesis:_(_n_=_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A16: n = len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A17: ( i < n & j < n ) by A3, A5, A6, NAT_1:13;
(f ^ <*((f /. i) * (f /. j))*>) /. n = (f /. i) * (f /. j) by A6, A16, Lm3
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * (f /. j) by A2, A3, Lm4
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) by A4, A5, Lm4 ;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A4, A17; ::_thesis: verum
end;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A10, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def13;
then (len f) + (len <*((f /. i) * (f /. j))*>) <> 0 by NAT_1:7;
then len (f ^ <*((f /. i) * (f /. j))*>) <> 0 by FINSEQ_1:22;
hence f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares by A7, Def13; ::_thesis: verum
end;
Lm46: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & x is being_a_square implies (f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: x is being_a_square ; ::_thesis: (f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares
A3: f ^ <*x*> is being_a_generation_from_squares by A1, A2, Lm34;
len <*x*> = 1 by Lm2;
then A4: (len f) + 1 = len (f ^ <*x*>) by FINSEQ_1:22;
A5: ( len f <= (len f) + 1 & (len f) + 1 <> 0 ) by NAT_1:5, NAT_1:11;
A6: (f ^ <*x*>) /. ((len f) + 1) = x by Lm3;
A7: len f <> 0 by A1, Def13;
then (f ^ <*x*>) /. (len f) = f /. (len f) by Lm4;
hence (f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is being_a_generation_from_squares by A3, A7, A5, A4, A6, Lm45; ::_thesis: verum
end;
Lm47: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_square implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_square ; ::_thesis: x * y is generated_from_squares
consider f being FinSequence of R such that
A3: ( f is being_a_generation_from_squares & x = f /. (len f) ) by A1, Def14;
take g = (f ^ <*y*>) ^ <*((f /. (len f)) * y)*>; :: according to O_RING_1:def_14 ::_thesis: ( g is being_a_generation_from_squares & x * y = g /. (len g) )
len g = (len (f ^ <*y*>)) + (len <*((f /. (len f)) * y)*>) by FINSEQ_1:22
.= (len (f ^ <*y*>)) + 1 by Lm2 ;
hence ( g is being_a_generation_from_squares & x * y = g /. (len g) ) by A2, A3, Lm3, Lm46; ::_thesis: verum
end;
Lm48: for i being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Product_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
proof
let i be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Product_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Product_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Product_of_squares & 0 <> i & i <= len f implies f /. i is generated_from_squares )
assume that
A1: f is being_a_Product_of_squares and
A2: ( 0 <> i & i <= len f ) ; ::_thesis: f /. i is generated_from_squares
defpred S1[ Nat] means ( 0 <> $1 & $1 <= len f implies f /. $1 is generated_from_squares );
A3: for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be Nat; ::_thesis: ( S1[i] implies S1[i + 1] )
assume A4: ( 0 <> i & i <= len f implies f /. i is generated_from_squares ) ; ::_thesis: S1[i + 1]
assume that
0 <> i + 1 and
A5: i + 1 <= len f ; ::_thesis: f /. (i + 1) is generated_from_squares
A6: i < len f by A5, NAT_1:13;
A7: now__::_thesis:_(_i_<>_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume A8: i <> 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then ex y being Scalar of R st
( y is being_a_square & f /. (i + 1) = (f /. i) * y ) by A1, A6, Def5;
hence f /. (i + 1) is generated_from_squares by A4, A5, A8, Lm47, NAT_1:13; ::_thesis: verum
end;
now__::_thesis:_(_i_=_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume i = 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then f /. (i + 1) is being_a_square by A1, Def5;
hence f /. (i + 1) is generated_from_squares by Lm31; ::_thesis: verum
end;
hence f /. (i + 1) is generated_from_squares by A7; ::_thesis: verum
end;
A9: S1[ 0 ] ;
for i being Nat holds S1[i] from NAT_1:sch_2(A9, A3);
hence f /. i is generated_from_squares by A2; ::_thesis: verum
end;
Lm49: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies x is generated_from_squares )
assume x is being_a_product_of_squares ; ::_thesis: x is generated_from_squares
then consider f being FinSequence of R such that
A1: f is being_a_Product_of_squares and
A2: x = f /. (len f) by Def6;
0 <> len f by A1, Def5;
hence x is generated_from_squares by A1, A2, Lm48; ::_thesis: verum
end;
Lm50: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_product_of_squares holds
<*x*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_product_of_squares implies <*x*> is being_a_generation_from_squares )
set g = <*x*>;
A1: len <*x*> = 1 by Lm2;
assume A2: x is being_a_product_of_squares ; ::_thesis: <*x*> is being_a_generation_from_squares
for n being Nat st n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len <*x*> & not <*x*> /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A3: n <> 0 and
A4: n <= len <*x*> ; ::_thesis: ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
n < 1 + 1 by A1, A4, NAT_1:13;
then n = 1 by A3, NAT_1:23;
then <*x*> /. n = x by Lm2;
hence ( <*x*> /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( <*x*> /. n = (<*x*> /. i) * (<*x*> /. j) or <*x*> /. n = (<*x*> /. i) + (<*x*> /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, Lm19; ::_thesis: verum
end;
hence <*x*> is being_a_generation_from_squares by A1, Def13; ::_thesis: verum
end;
Lm51: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_product_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_product_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & x is being_a_product_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & x is being_a_product_of_squares implies (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: x is being_a_product_of_squares ; ::_thesis: (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares
<*x*> is being_a_generation_from_squares by A2, Lm50;
then A3: f ^ <*x*> is being_a_generation_from_squares by A1, Lm33;
len <*x*> = 1 by Lm2;
then A4: (len f) + 1 = len (f ^ <*x*>) by FINSEQ_1:22;
A5: ( len f <= (len f) + 1 & (len f) + 1 <> 0 ) by NAT_1:5, NAT_1:11;
A6: (f ^ <*x*>) /. ((len f) + 1) = x by Lm3;
A7: len f <> 0 by A1, Def13;
then (f ^ <*x*>) /. (len f) = f /. (len f) by Lm4;
hence (f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is being_a_generation_from_squares by A3, A7, A5, A4, A6, Lm32; ::_thesis: verum
end;
Lm52: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_product_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x + y is generated_from_squares
consider f being FinSequence of R such that
A3: ( f is being_a_generation_from_squares & x = f /. (len f) ) by A1, Def14;
take g = (f ^ <*y*>) ^ <*((f /. (len f)) + y)*>; :: according to O_RING_1:def_14 ::_thesis: ( g is being_a_generation_from_squares & x + y = g /. (len g) )
len g = (len (f ^ <*y*>)) + (len <*((f /. (len f)) + y)*>) by FINSEQ_1:22
.= (len (f ^ <*y*>)) + 1 by Lm2 ;
hence ( g is being_a_generation_from_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm51; ::_thesis: verum
end;
Lm53: for i being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
proof
let i be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & 0 <> i & i <= len f holds
f /. i is generated_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_products_of_squares & 0 <> i & i <= len f implies f /. i is generated_from_squares )
assume that
A1: f is being_a_Sum_of_products_of_squares and
A2: ( 0 <> i & i <= len f ) ; ::_thesis: f /. i is generated_from_squares
defpred S1[ Nat] means ( 0 <> $1 & $1 <= len f implies f /. $1 is generated_from_squares );
A3: for i being Nat st S1[i] holds
S1[i + 1]
proof
let i be Nat; ::_thesis: ( S1[i] implies S1[i + 1] )
assume A4: ( 0 <> i & i <= len f implies f /. i is generated_from_squares ) ; ::_thesis: S1[i + 1]
assume that
0 <> i + 1 and
A5: i + 1 <= len f ; ::_thesis: f /. (i + 1) is generated_from_squares
A6: i < len f by A5, NAT_1:13;
A7: now__::_thesis:_(_i_<>_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume A8: i <> 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then ex y being Scalar of R st
( y is being_a_product_of_squares & f /. (i + 1) = (f /. i) + y ) by A1, A6, Def7;
hence f /. (i + 1) is generated_from_squares by A4, A5, A8, Lm52, NAT_1:13; ::_thesis: verum
end;
now__::_thesis:_(_i_=_0_implies_f_/._(i_+_1)_is_generated_from_squares_)
assume i = 0 ; ::_thesis: f /. (i + 1) is generated_from_squares
then f /. (i + 1) is being_a_product_of_squares by A1, Def7;
hence f /. (i + 1) is generated_from_squares by Lm49; ::_thesis: verum
end;
hence f /. (i + 1) is generated_from_squares by A7; ::_thesis: verum
end;
A9: S1[ 0 ] ;
for i being Nat holds S1[i] from NAT_1:sch_2(A9, A3);
hence f /. i is generated_from_squares by A2; ::_thesis: verum
end;
Lm54: for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_products_of_squares holds
x is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R st x is being_a_sum_of_products_of_squares holds
x is generated_from_squares
let x be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares implies x is generated_from_squares )
assume x is being_a_sum_of_products_of_squares ; ::_thesis: x is generated_from_squares
then consider f being FinSequence of R such that
A1: f is being_a_Sum_of_products_of_squares and
A2: x = f /. (len f) by Def8;
0 <> len f by A1, Def7;
hence x is generated_from_squares by A1, A2, Lm53; ::_thesis: verum
end;
theorem :: O_RING_1:2
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_square holds
( x is being_a_sum_of_squares & x is being_a_product_of_squares & x is being_a_sum_of_products_of_squares & x is being_an_amalgam_of_squares & x is being_a_sum_of_amalgams_of_squares & x is generated_from_squares ) by Lm7, Lm9, Lm11, Lm17, Lm21, Lm31;
theorem :: O_RING_1:3
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_squares holds
( x is being_a_sum_of_products_of_squares & x is being_a_sum_of_amalgams_of_squares & x is generated_from_squares ) by Lm15, Lm23, Lm38;
theorem :: O_RING_1:4
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_product_of_squares holds
( x is being_a_sum_of_products_of_squares & x is being_an_amalgam_of_squares & x is being_a_sum_of_amalgams_of_squares & x is generated_from_squares ) by Lm13, Lm19, Lm25, Lm49;
theorem :: O_RING_1:5
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_a_sum_of_products_of_squares holds
( x is being_a_sum_of_amalgams_of_squares & x is generated_from_squares ) by Lm27, Lm54;
theorem :: O_RING_1:6
for R being non empty doubleLoopStr
for x being Scalar of R st x is being_an_amalgam_of_squares holds
( x is being_a_sum_of_amalgams_of_squares & x is generated_from_squares ) by Lm29, Lm40;
begin
Lm55: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_squares & x is being_a_square implies f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares )
assume that
A1: f is being_a_Sum_of_squares and
A2: x is being_a_square ; ::_thesis: f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares
set g = f ^ <*((f /. (len f)) + x)*>;
A3: len (f ^ <*((f /. (len f)) + x)*>) = (len f) + (len <*((f /. (len f)) + x)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A4: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n )
assume ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) ) ; ::_thesis: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
then ( 1 <= n & n <= len f ) by A3, NAT_1:13, NAT_1:25;
then n in dom f by FINSEQ_3:25;
hence f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by Lm1; ::_thesis: verum
end;
A5: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) )
assume that
A6: n <> 0 and
A7: n < len (f ^ <*((f /. (len f)) + x)*>) ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
A8: now__::_thesis:_(_n_<_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_square_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
A9: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by A4, A6, A7;
assume A10: n < len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
then ( n + 1 <> 0 & n + 1 < len (f ^ <*((f /. (len f)) + x)*>) ) by A3, NAT_1:5, XREAL_1:6;
then f /. (n + 1) = (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) by A4;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A1, A6, A10, A9, Def3; ::_thesis: verum
end;
A11: now__::_thesis:_(_n_=_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_square_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
assume A12: n = len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
1 <= n by A6, NAT_1:25;
then A13: n in dom f by A12, FINSEQ_3:25;
(f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = (f /. n) + x by A12, Lm3;
then (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + x by A13, Lm1;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A2; ::_thesis: verum
end;
n <= len f by A3, A7, NAT_1:13;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A8, A11, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def3;
then 1 <= len f by NAT_1:25;
then 1 < len (f ^ <*((f /. (len f)) + x)*>) by A3, NAT_1:13;
then (f ^ <*((f /. (len f)) + x)*>) /. 1 = f /. 1 by A4;
then A14: (f ^ <*((f /. (len f)) + x)*>) /. 1 is being_a_square by A1, Def3;
len (f ^ <*((f /. (len f)) + x)*>) <> 0 by A3, NAT_1:5;
hence f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_squares by A14, A5, Def3; ::_thesis: verum
end;
Lm56: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_square holds
x + y is being_a_sum_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_square holds
x + y is being_a_sum_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_square implies x + y is being_a_sum_of_squares )
assume that
A1: x is being_a_sum_of_squares and
A2: y is being_a_square ; ::_thesis: x + y is being_a_sum_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_squares & x = f /. (len f) ) by A1, Def4;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_4 ::_thesis: ( g is being_a_Sum_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm55; ::_thesis: verum
end;
Lm57: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & x is being_a_product_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & x is being_a_product_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_products_of_squares & x is being_a_product_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_products_of_squares & x is being_a_product_of_squares implies f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares )
assume that
A1: f is being_a_Sum_of_products_of_squares and
A2: x is being_a_product_of_squares ; ::_thesis: f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares
set g = f ^ <*((f /. (len f)) + x)*>;
A3: len (f ^ <*((f /. (len f)) + x)*>) = (len f) + (len <*((f /. (len f)) + x)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A4: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n )
assume ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) ) ; ::_thesis: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
then ( 1 <= n & n <= len f ) by A3, NAT_1:13, NAT_1:25;
then n in dom f by FINSEQ_3:25;
hence f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by Lm1; ::_thesis: verum
end;
A5: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) )
assume that
A6: n <> 0 and
A7: n < len (f ^ <*((f /. (len f)) + x)*>) ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
A8: now__::_thesis:_(_n_<_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_product_of_squares_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
A9: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by A4, A6, A7;
assume A10: n < len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
then ( n + 1 <> 0 & n + 1 < len (f ^ <*((f /. (len f)) + x)*>) ) by A3, NAT_1:5, XREAL_1:6;
then f /. (n + 1) = (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) by A4;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A1, A6, A10, A9, Def7; ::_thesis: verum
end;
A11: now__::_thesis:_(_n_=_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_product_of_squares_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
assume A12: n = len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
1 <= n by A6, NAT_1:25;
then A13: n in dom f by A12, FINSEQ_3:25;
(f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = (f /. n) + x by A12, Lm3;
then (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + x by A13, Lm1;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A2; ::_thesis: verum
end;
n <= len f by A3, A7, NAT_1:13;
hence ex y being Scalar of R st
( y is being_a_product_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A8, A11, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def7;
then 1 <= len f by NAT_1:25;
then 1 < len (f ^ <*((f /. (len f)) + x)*>) by A3, NAT_1:13;
then (f ^ <*((f /. (len f)) + x)*>) /. 1 = f /. 1 by A4;
then A14: (f ^ <*((f /. (len f)) + x)*>) /. 1 is being_a_product_of_squares by A1, Def7;
len (f ^ <*((f /. (len f)) + x)*>) <> 0 by A3, NAT_1:5;
hence f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_products_of_squares by A14, A5, Def7; ::_thesis: verum
end;
Lm58: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_products_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares implies x + y is being_a_sum_of_products_of_squares )
assume that
A1: x is being_a_sum_of_products_of_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x + y is being_a_sum_of_products_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_products_of_squares & x = f /. (len f) ) by A1, Def8;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_8 ::_thesis: ( g is being_a_Sum_of_products_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_products_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm57; ::_thesis: verum
end;
Lm59: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_amalgams_of_squares & x is being_an_amalgam_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_Sum_of_amalgams_of_squares & x is being_an_amalgam_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_Sum_of_amalgams_of_squares & x is being_an_amalgam_of_squares holds
f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Sum_of_amalgams_of_squares & x is being_an_amalgam_of_squares implies f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares )
assume that
A1: f is being_a_Sum_of_amalgams_of_squares and
A2: x is being_an_amalgam_of_squares ; ::_thesis: f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares
set g = f ^ <*((f /. (len f)) + x)*>;
A3: len (f ^ <*((f /. (len f)) + x)*>) = (len f) + (len <*((f /. (len f)) + x)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A4: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n )
assume ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) ) ; ::_thesis: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n
then ( 1 <= n & n <= len f ) by A3, NAT_1:13, NAT_1:25;
then n in dom f by FINSEQ_3:25;
hence f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by Lm1; ::_thesis: verum
end;
A5: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) holds
ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) + x)*>) implies ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) )
assume that
A6: n <> 0 and
A7: n < len (f ^ <*((f /. (len f)) + x)*>) ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
A8: now__::_thesis:_(_n_<_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_an_amalgam_of_squares_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
A9: f /. n = (f ^ <*((f /. (len f)) + x)*>) /. n by A4, A6, A7;
assume A10: n < len f ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
then ( n + 1 <> 0 & n + 1 < len (f ^ <*((f /. (len f)) + x)*>) ) by A3, NAT_1:5, XREAL_1:6;
then f /. (n + 1) = (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) by A4;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A1, A6, A10, A9, Def11; ::_thesis: verum
end;
A11: now__::_thesis:_(_n_=_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_an_amalgam_of_squares_&_(f_^_<*((f_/._(len_f))_+_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_+_x)*>)_/._n)_+_y_)_)
assume A12: n = len f ; ::_thesis: ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y )
1 <= n by A6, NAT_1:25;
then A13: n in dom f by A12, FINSEQ_3:25;
(f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = (f /. n) + x by A12, Lm3;
then (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + x by A13, Lm1;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A2; ::_thesis: verum
end;
n <= len f by A3, A7, NAT_1:13;
hence ex y being Scalar of R st
( y is being_an_amalgam_of_squares & (f ^ <*((f /. (len f)) + x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) + x)*>) /. n) + y ) by A8, A11, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def11;
then 1 <= len f by NAT_1:25;
then 1 < len (f ^ <*((f /. (len f)) + x)*>) by A3, NAT_1:13;
then (f ^ <*((f /. (len f)) + x)*>) /. 1 = f /. 1 by A4;
then A14: (f ^ <*((f /. (len f)) + x)*>) /. 1 is being_an_amalgam_of_squares by A1, Def11;
len (f ^ <*((f /. (len f)) + x)*>) <> 0 by A3, NAT_1:5;
hence f ^ <*((f /. (len f)) + x)*> is being_a_Sum_of_amalgams_of_squares by A14, A5, Def11; ::_thesis: verum
end;
Lm60: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares implies x + y is being_a_sum_of_amalgams_of_squares )
assume that
A1: x is being_a_sum_of_amalgams_of_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x + y is being_a_sum_of_amalgams_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) by A1, Def12;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_12 ::_thesis: ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm59; ::_thesis: verum
end;
Lm61: for i, j being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
proof
let i, j be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f implies f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: i <> 0 and
A3: i <= len f and
A4: j <> 0 and
A5: j <= len f ; ::_thesis: f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares
set g = f ^ <*((f /. i) + (f /. j))*>;
A6: len (f ^ <*((f /. i) + (f /. j))*>) = (len f) + (len <*((f /. i) + (f /. j))*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A7: for n being Nat st n <> 0 & n <= len (f ^ <*((f /. i) + (f /. j))*>) & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ <*((f /. i) + (f /. j))*>) & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A8: n <> 0 and
A9: n <= len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A10: now__::_thesis:_(_n_<_len_(f_^_<*((f_/._i)_+_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume n < len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A11: n <= len f by A6, NAT_1:13;
then A12: (f ^ <*((f /. i) + (f /. j))*>) /. n = f /. n by A8, Lm4;
A13: now__::_thesis:_(_ex_k,_m_being_Nat_st_
(_(_f_/._n_=_(f_/._k)_*_(f_/._m)_or_f_/._n_=_(f_/._k)_+_(f_/._m)_)_&_k_<>_0_&_k_<_n_&_m_<>_0_&_m_<_n_)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, m being Nat such that A14: ( f /. n = (f /. k) * (f /. m) or f /. n = (f /. k) + (f /. m) ) and
A15: ( k <> 0 & k < n & m <> 0 & m < n ) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
( f /. k = (f ^ <*((f /. i) + (f /. j))*>) /. k & f /. m = (f ^ <*((f /. i) + (f /. j))*>) /. m ) by A11, A15, Lm4, XXREAL_0:2;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A12, A14, A15; ::_thesis: verum
end;
( f /. n is being_an_amalgam_of_squares & not (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A8, A11, Lm4;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A8, A11, A13, Def13; ::_thesis: verum
end;
now__::_thesis:_(_n_=_len_(f_^_<*((f_/._i)_+_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_+_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_+_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A16: n = len (f ^ <*((f /. i) + (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A17: ( i < n & j < n ) by A3, A5, A6, NAT_1:13;
(f ^ <*((f /. i) + (f /. j))*>) /. n = (f /. i) + (f /. j) by A6, A16, Lm3
.= ((f ^ <*((f /. i) + (f /. j))*>) /. i) + (f /. j) by A2, A3, Lm4
.= ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) by A4, A5, Lm4 ;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A4, A17; ::_thesis: verum
end;
hence ( (f ^ <*((f /. i) + (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) * ((f ^ <*((f /. i) + (f /. j))*>) /. j) or (f ^ <*((f /. i) + (f /. j))*>) /. n = ((f ^ <*((f /. i) + (f /. j))*>) /. i) + ((f ^ <*((f /. i) + (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A10, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def13;
then (len f) + (len <*((f /. i) + (f /. j))*>) <> 0 by NAT_1:7;
then len (f ^ <*((f /. i) + (f /. j))*>) <> 0 by FINSEQ_1:22;
hence f ^ <*((f /. i) + (f /. j))*> is being_a_generation_from_squares by A7, Def13; ::_thesis: verum
end;
Lm62: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_square holds
x + y is being_a_sum_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_square holds
x + y is being_a_sum_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_square implies x + y is being_a_sum_of_squares )
assume A1: ( x is being_a_square & y is being_a_square ) ; ::_thesis: x + y is being_a_sum_of_squares
take g = <*x*> ^ <*(x + y)*>; :: according to O_RING_1:def_4 ::_thesis: ( g is being_a_Sum_of_squares & x + y = g /. (len g) )
len <*x*> = 1 by Lm2;
then A2: <*x*> /. (len <*x*>) = x by Lm2;
len g = (len <*x*>) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len <*x*>) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_squares & x + y = g /. (len g) ) by A1, A2, Lm3, Lm6, Lm55; ::_thesis: verum
end;
Lm63: for R being non empty doubleLoopStr
for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
(f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
(f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares
let f, g be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & g is being_a_generation_from_squares implies (f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: g is being_a_generation_from_squares ; ::_thesis: (f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares
A3: len g <> 0 by A2, Def13;
then A4: (len f) + (len g) <> 0 by NAT_1:7;
len f <> 0 by A1, Def13;
then 1 <= len f by NAT_1:25;
then len f in dom f by FINSEQ_3:25;
then A5: ( (len f) + (len g) <= len (f ^ g) & (f ^ g) /. (len f) = f /. (len f) ) by Lm1, FINSEQ_1:22;
len f <= (len f) + (len g) by NAT_1:11;
then A6: len f <= len (f ^ g) by FINSEQ_1:22;
1 <= len g by A3, NAT_1:25;
then len g in dom g by FINSEQ_3:25;
then A7: (f ^ g) /. ((len f) + (len g)) = g /. (len g) by Lm1;
( f ^ g is being_a_generation_from_squares & len f <> 0 ) by A1, A2, Def13, Lm33;
hence (f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares by A6, A4, A5, A7, Lm61; ::_thesis: verum
end;
Lm64: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
consider f being FinSequence of R such that
A3: f is being_a_generation_from_squares and
A4: x = f /. (len f) by A1, Def14;
consider g being FinSequence of R such that
A5: g is being_a_generation_from_squares and
A6: y = g /. (len g) by A2, Def14;
set h = (f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*>;
len ((f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*>) = (len (f ^ g)) + (len <*((f /. (len f)) + (g /. (len g)))*>) by FINSEQ_1:22
.= (len (f ^ g)) + 1 by Lm2 ;
then A7: ((f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*>) /. (len ((f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*>)) = x + (g /. (len g)) by A4, Lm3;
(f ^ g) ^ <*((f /. (len f)) + (g /. (len g)))*> is being_a_generation_from_squares by A3, A5, Lm63;
hence x + y is generated_from_squares by A6, A7, Def14; ::_thesis: verum
end;
theorem :: O_RING_1:7
for R being non empty doubleLoopStr
for x, y being Scalar of R st ( ( x is being_a_square & y is being_a_square ) or ( x is being_a_sum_of_squares & y is being_a_square ) ) holds
x + y is being_a_sum_of_squares by Lm56, Lm62;
Lm65: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_square holds
x + y is being_a_sum_of_products_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_square holds
x + y is being_a_sum_of_products_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_square implies x + y is being_a_sum_of_products_of_squares )
assume that
A1: x is being_a_sum_of_products_of_squares and
A2: y is being_a_square ; ::_thesis: x + y is being_a_sum_of_products_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_products_of_squares & x = f /. (len f) ) by A1, Def8;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_8 ::_thesis: ( g is being_a_Sum_of_products_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_products_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm9, Lm57; ::_thesis: verum
end;
theorem :: O_RING_1:8
for R being non empty doubleLoopStr
for x, y being Scalar of R st ( ( x is being_a_sum_of_products_of_squares & y is being_a_square ) or ( x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares ) ) holds
x + y is being_a_sum_of_products_of_squares by Lm58, Lm65;
Lm66: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_product_of_squares implies x + y is being_a_sum_of_amalgams_of_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x + y is being_a_sum_of_amalgams_of_squares
x is being_a_sum_of_amalgams_of_squares by A1, Lm29;
then consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) by Def12;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_12 ::_thesis: ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm19, Lm59; ::_thesis: verum
end;
Lm67: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares implies x + y is being_a_sum_of_amalgams_of_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x + y is being_a_sum_of_amalgams_of_squares
x is being_a_sum_of_amalgams_of_squares by A1, Lm29;
then consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) by Def12;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_12 ::_thesis: ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm59; ::_thesis: verum
end;
Lm68: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares holds
x + y is being_a_sum_of_amalgams_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares implies x + y is being_a_sum_of_amalgams_of_squares )
assume that
A1: x is being_a_sum_of_amalgams_of_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x + y is being_a_sum_of_amalgams_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) by A1, Def12;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_12 ::_thesis: ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm19, Lm59; ::_thesis: verum
end;
Lm69: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_square holds
x + y is being_a_sum_of_amalgams_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_square holds
x + y is being_a_sum_of_amalgams_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_square implies x + y is being_a_sum_of_amalgams_of_squares )
assume that
A1: x is being_a_sum_of_amalgams_of_squares and
A2: y is being_a_square ; ::_thesis: x + y is being_a_sum_of_amalgams_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Sum_of_amalgams_of_squares & x = f /. (len f) ) by A1, Def12;
take g = f ^ <*(x + y)*>; :: according to O_RING_1:def_12 ::_thesis: ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) )
len g = (len f) + (len <*(x + y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Sum_of_amalgams_of_squares & x + y = g /. (len g) ) by A2, A3, Lm3, Lm17, Lm59; ::_thesis: verum
end;
theorem :: O_RING_1:9
for R being non empty doubleLoopStr
for x, y being Scalar of R st ( ( x is being_an_amalgam_of_squares & ( y is being_a_product_of_squares or y is being_an_amalgam_of_squares ) ) or ( x is being_a_sum_of_amalgams_of_squares & ( y is being_a_square or y is being_a_product_of_squares or y is being_an_amalgam_of_squares ) ) ) holds
x + y is being_a_sum_of_amalgams_of_squares by Lm60, Lm66, Lm67, Lm68, Lm69;
Lm70: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_square & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm38;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
Lm71: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_product_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_product_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_product_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_square & y is being_a_product_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
Lm72: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_a_square and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Lm31;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
Lm73: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_square & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
Lm74: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
by Lm40, Lm72;
Lm75: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
by Lm72, Th1;
theorem :: O_RING_1:10
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & ( y is being_a_sum_of_squares or y is being_a_product_of_squares or y is being_a_sum_of_products_of_squares or y is being_an_amalgam_of_squares or y is being_a_sum_of_amalgams_of_squares or y is generated_from_squares ) holds
x + y is generated_from_squares by Lm70, Lm71, Lm72, Lm73, Lm74, Lm75;
theorem :: O_RING_1:11
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:12
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_product_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:13
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:14
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_an_amalgam_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm40;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:15
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:16
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_a_sum_of_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Lm38;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:17
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_a_product_of_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Lm49;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:18
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:19
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_an_amalgam_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:20
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:21
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_product_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:22
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:23
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_square holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_square holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_square implies x + y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_square ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm49;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:24
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_a_sum_of_products_of_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Lm54;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:25
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:26
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:27
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:28
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:29
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Lm40;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:30
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_square holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_square holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_square implies x + y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_square ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm40;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:31
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm40;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:32
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Lm54;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:33
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:34
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:35
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54, Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:36
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x + y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Th1;
hence x + y is generated_from_squares by Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:37
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares implies x + y is generated_from_squares )
assume that
A1: x is being_a_sum_of_amalgams_of_squares and
A2: y is generated_from_squares ; ::_thesis: x + y is generated_from_squares
x is generated_from_squares by A1, Th1;
hence x + y is generated_from_squares by A2, Lm64; ::_thesis: verum
end;
Lm76: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_squares ; ::_thesis: x + y is generated_from_squares
y is generated_from_squares by A2, Lm38;
hence x + y is generated_from_squares by A1, Lm64; ::_thesis: verum
end;
Lm77: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_product_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x + y is generated_from_squares
y is generated_from_squares by A2, Lm49;
hence x + y is generated_from_squares by A1, Lm64; ::_thesis: verum
end;
Lm78: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_products_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_products_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_products_of_squares ; ::_thesis: x + y is generated_from_squares
y is generated_from_squares by A2, Lm54;
hence x + y is generated_from_squares by A1, Lm64; ::_thesis: verum
end;
Lm79: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares holds
x + y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares implies x + y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_amalgams_of_squares ; ::_thesis: x + y is generated_from_squares
y is generated_from_squares by A2, Th1;
hence x + y is generated_from_squares by A1, Lm64; ::_thesis: verum
end;
theorem :: O_RING_1:38
for R being non empty doubleLoopStr
for x, y being Scalar of R st ( ( x is generated_from_squares & y is being_a_square ) or ( x is generated_from_squares & y is being_a_sum_of_squares ) or ( x is generated_from_squares & y is being_a_product_of_squares ) or ( x is generated_from_squares & y is being_a_sum_of_products_of_squares ) or ( x is generated_from_squares & y is being_an_amalgam_of_squares ) or ( x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares ) or ( x is generated_from_squares & y is generated_from_squares ) ) holds
x + y is generated_from_squares by Lm36, Lm43, Lm64, Lm76, Lm77, Lm78, Lm79;
begin
Lm80: for R being non empty doubleLoopStr
for f, g being FinSequence of R st f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares holds
f ^ g is being_an_Amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares holds
f ^ g is being_an_Amalgam_of_squares
let f, g be FinSequence of R; ::_thesis: ( f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares implies f ^ g is being_an_Amalgam_of_squares )
assume that
A1: f is being_an_Amalgam_of_squares and
A2: g is being_an_Amalgam_of_squares ; ::_thesis: f ^ g is being_an_Amalgam_of_squares
A3: for n being Nat st n <> 0 & n <= len (f ^ g) & not (f ^ g) /. n is being_a_product_of_squares holds
ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ g) & not (f ^ g) /. n is being_a_product_of_squares implies ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A4: n <> 0 and
A5: n <= len (f ^ g) ; ::_thesis: ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
A6: n <= (len f) + (len g) by A5, FINSEQ_1:22;
A7: now__::_thesis:_(_len_f_<_n_&_not_(f_^_g)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A8: len f < n ; ::_thesis: ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
then consider m being Nat such that
A9: n = (len f) + m by NAT_1:10;
(len f) + m <= (len f) + (len g) by A5, A9, FINSEQ_1:22;
then A10: m <= len g by XREAL_1:6;
A11: m <> 0 by A8, A9;
A12: m <= len g by A6, A9, XREAL_1:6;
A13: now__::_thesis:_(_ex_k,_l_being_Nat_st_
(_g_/._m_=_(g_/._k)_*_(g_/._l)_&_k_<>_0_&_k_<_m_&_l_<>_0_&_l_<_m_)_&_not_(f_^_g)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, l being Nat such that A14: g /. m = (g /. k) * (g /. l) and
A15: k <> 0 and
A16: k < m and
A17: l <> 0 and
A18: l < m ; ::_thesis: ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
A19: ( (len f) + k <> 0 & (len f) + l <> 0 ) by A15, A17, NAT_1:7;
A20: ( (len f) + k < n & (len f) + l < n ) by A9, A16, A18, XREAL_1:6;
(f ^ g) /. n = (g /. k) * (g /. l) by A9, A11, A10, A14, Lm5
.= ((f ^ g) /. ((len f) + k)) * (g /. l) by A12, A15, A16, Lm5, XXREAL_0:2
.= ((f ^ g) /. ((len f) + k)) * ((f ^ g) /. ((len f) + l)) by A12, A17, A18, Lm5, XXREAL_0:2 ;
hence ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A19, A20; ::_thesis: verum
end;
( g /. m is being_a_product_of_squares & not (f ^ g) /. n is being_a_product_of_squares implies ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A11, A10, Lm5;
hence ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A11, A10, A13, Def9; ::_thesis: verum
end;
now__::_thesis:_(_n_<=_len_f_&_not_(f_^_g)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A21: n <= len f ; ::_thesis: ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
A22: now__::_thesis:_(_ex_k,_l_being_Nat_st_
(_f_/._n_=_(f_/._k)_*_(f_/._l)_&_k_<>_0_&_k_<_n_&_l_<>_0_&_l_<_n_)_&_not_(f_^_g)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_g)_/._n_=_((f_^_g)_/._i)_*_((f_^_g)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, l being Nat such that A23: f /. n = (f /. k) * (f /. l) and
A24: ( k <> 0 & k < n ) and
A25: ( l <> 0 & l < n ) ; ::_thesis: ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
(f ^ g) /. n = (f /. k) * (f /. l) by A4, A21, A23, Lm4
.= ((f ^ g) /. k) * (f /. l) by A21, A24, Lm4, XXREAL_0:2
.= ((f ^ g) /. k) * ((f ^ g) /. l) by A21, A25, Lm4, XXREAL_0:2 ;
hence ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A24, A25; ::_thesis: verum
end;
( f /. n is being_a_product_of_squares & not (f ^ g) /. n is being_a_product_of_squares implies ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A4, A21, Lm4;
hence ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A4, A21, A22, Def9; ::_thesis: verum
end;
hence ( (f ^ g) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ g) /. n = ((f ^ g) /. i) * ((f ^ g) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A7; ::_thesis: verum
end;
len f <> 0 by A1, Def9;
then (len f) + (len g) <> 0 by NAT_1:7;
then len (f ^ g) <> 0 by FINSEQ_1:22;
hence f ^ g is being_an_Amalgam_of_squares by A3, Def9; ::_thesis: verum
end;
Lm81: for i, j being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_an_Amalgam_of_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares
proof
let i, j be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_an_Amalgam_of_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_an_Amalgam_of_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_an_Amalgam_of_squares & i <> 0 & i <= len f & j <> 0 & j <= len f implies f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares )
assume that
A1: f is being_an_Amalgam_of_squares and
A2: i <> 0 and
A3: i <= len f and
A4: j <> 0 and
A5: j <= len f ; ::_thesis: f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares
set g = f ^ <*((f /. i) * (f /. j))*>;
A6: len (f ^ <*((f /. i) * (f /. j))*>) = (len f) + (len <*((f /. i) * (f /. j))*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A7: for n being Nat st n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares holds
ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares implies ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A8: n <> 0 and
A9: n <= len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
A10: now__::_thesis:_(_n_<_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume n < len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
then A11: n <= len f by A6, NAT_1:13;
A12: now__::_thesis:_(_ex_k,_m_being_Nat_st_
(_f_/._n_=_(f_/._k)_*_(f_/._m)_&_k_<>_0_&_k_<_n_&_m_<>_0_&_m_<_n_)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, m being Nat such that A13: f /. n = (f /. k) * (f /. m) and
A14: ( k <> 0 & k < n ) and
A15: ( m <> 0 & m < n ) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
(f ^ <*((f /. i) * (f /. j))*>) /. n = (f /. k) * (f /. m) by A8, A11, A13, Lm4
.= ((f ^ <*((f /. i) * (f /. j))*>) /. k) * (f /. m) by A11, A14, Lm4, XXREAL_0:2
.= ((f ^ <*((f /. i) * (f /. j))*>) /. k) * ((f ^ <*((f /. i) * (f /. j))*>) /. m) by A11, A15, Lm4, XXREAL_0:2 ;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A14, A15; ::_thesis: verum
end;
( f /. n is being_a_product_of_squares & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares implies ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A8, A11, Lm4;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A8, A11, A12, Def9; ::_thesis: verum
end;
now__::_thesis:_(_n_=_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_a_product_of_squares_implies_ex_i,_j_being_Nat_st_
(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A16: n = len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) )
then A17: ( i < n & j < n ) by A3, A5, A6, NAT_1:13;
(f ^ <*((f /. i) * (f /. j))*>) /. n = (f /. i) * (f /. j) by A6, A16, Lm3
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * (f /. j) by A2, A3, Lm4
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) by A4, A5, Lm4 ;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A4, A17; ::_thesis: verum
end;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_a_product_of_squares or ex i, j being Nat st
( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A10, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def9;
then (len f) + (len <*((f /. i) * (f /. j))*>) <> 0 by NAT_1:7;
then len (f ^ <*((f /. i) * (f /. j))*>) <> 0 by FINSEQ_1:22;
hence f ^ <*((f /. i) * (f /. j))*> is being_an_Amalgam_of_squares by A7, Def9; ::_thesis: verum
end;
Lm82: for i, j being Nat
for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
proof
let i, j be Nat; ::_thesis: for R being non empty doubleLoopStr
for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
let R be non empty doubleLoopStr ; ::_thesis: for f being FinSequence of R st f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f implies f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: i <> 0 and
A3: i <= len f and
A4: j <> 0 and
A5: j <= len f ; ::_thesis: f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares
set g = f ^ <*((f /. i) * (f /. j))*>;
A6: len (f ^ <*((f /. i) * (f /. j))*>) = (len f) + (len <*((f /. i) * (f /. j))*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A7: for n being Nat st n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares holds
ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n )
proof
let n be Nat; ::_thesis: ( n <> 0 & n <= len (f ^ <*((f /. i) * (f /. j))*>) & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
assume that
A8: n <> 0 and
A9: n <= len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
A10: now__::_thesis:_(_n_<_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume n < len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A11: n <= len f by A6, NAT_1:13;
then A12: (f ^ <*((f /. i) * (f /. j))*>) /. n = f /. n by A8, Lm4;
A13: now__::_thesis:_(_ex_k,_m_being_Nat_st_
(_(_f_/._n_=_(f_/._k)_*_(f_/._m)_or_f_/._n_=_(f_/._k)_+_(f_/._m)_)_&_k_<>_0_&_k_<_n_&_m_<>_0_&_m_<_n_)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
given k, m being Nat such that A14: ( f /. n = (f /. k) * (f /. m) or f /. n = (f /. k) + (f /. m) ) and
A15: ( k <> 0 & k < n & m <> 0 & m < n ) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
( f /. k = (f ^ <*((f /. i) * (f /. j))*>) /. k & f /. m = (f ^ <*((f /. i) * (f /. j))*>) /. m ) by A11, A15, Lm4, XXREAL_0:2;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A12, A14, A15; ::_thesis: verum
end;
( f /. n is being_an_amalgam_of_squares & not (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares implies ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A8, A11, Lm4;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A1, A8, A11, A13, Def13; ::_thesis: verum
end;
now__::_thesis:_(_n_=_len_(f_^_<*((f_/._i)_*_(f_/._j))*>)_&_not_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_is_being_an_amalgam_of_squares_implies_ex_i,_j_being_Nat_st_
(_(_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_*_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_or_(f_^_<*((f_/._i)_*_(f_/._j))*>)_/._n_=_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._i)_+_((f_^_<*((f_/._i)_*_(f_/._j))*>)_/._j)_)_&_i_<>_0_&_i_<_n_&_j_<>_0_&_j_<_n_)_)
assume A16: n = len (f ^ <*((f /. i) * (f /. j))*>) ; ::_thesis: ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) )
then A17: ( i < n & j < n ) by A3, A5, A6, NAT_1:13;
(f ^ <*((f /. i) * (f /. j))*>) /. n = (f /. i) * (f /. j) by A6, A16, Lm3
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * (f /. j) by A2, A3, Lm4
.= ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) by A4, A5, Lm4 ;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A2, A4, A17; ::_thesis: verum
end;
hence ( (f ^ <*((f /. i) * (f /. j))*>) /. n is being_an_amalgam_of_squares or ex i, j being Nat st
( ( (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) * ((f ^ <*((f /. i) * (f /. j))*>) /. j) or (f ^ <*((f /. i) * (f /. j))*>) /. n = ((f ^ <*((f /. i) * (f /. j))*>) /. i) + ((f ^ <*((f /. i) * (f /. j))*>) /. j) ) & i <> 0 & i < n & j <> 0 & j < n ) ) by A9, A10, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def13;
then (len f) + (len <*((f /. i) * (f /. j))*>) <> 0 by NAT_1:7;
then len (f ^ <*((f /. i) * (f /. j))*>) <> 0 by FINSEQ_1:22;
hence f ^ <*((f /. i) * (f /. j))*> is being_a_generation_from_squares by A7, Def13; ::_thesis: verum
end;
Lm83: for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of R st f is being_a_Product_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x being Scalar of R
for f being FinSequence of R st f is being_a_Product_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares
let x be Scalar of R; ::_thesis: for f being FinSequence of R st f is being_a_Product_of_squares & x is being_a_square holds
f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares
let f be FinSequence of R; ::_thesis: ( f is being_a_Product_of_squares & x is being_a_square implies f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares )
assume that
A1: f is being_a_Product_of_squares and
A2: x is being_a_square ; ::_thesis: f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares
set g = f ^ <*((f /. (len f)) * x)*>;
A3: len (f ^ <*((f /. (len f)) * x)*>) = (len f) + (len <*((f /. (len f)) * x)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
A4: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) * x)*>) holds
f /. n = (f ^ <*((f /. (len f)) * x)*>) /. n
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) * x)*>) implies f /. n = (f ^ <*((f /. (len f)) * x)*>) /. n )
assume ( n <> 0 & n < len (f ^ <*((f /. (len f)) * x)*>) ) ; ::_thesis: f /. n = (f ^ <*((f /. (len f)) * x)*>) /. n
then ( 1 <= n & n <= len f ) by A3, NAT_1:13, NAT_1:25;
then n in dom f by FINSEQ_3:25;
hence f /. n = (f ^ <*((f /. (len f)) * x)*>) /. n by Lm1; ::_thesis: verum
end;
A5: for n being Nat st n <> 0 & n < len (f ^ <*((f /. (len f)) * x)*>) holds
ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y )
proof
let n be Nat; ::_thesis: ( n <> 0 & n < len (f ^ <*((f /. (len f)) * x)*>) implies ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y ) )
assume that
A6: n <> 0 and
A7: n < len (f ^ <*((f /. (len f)) * x)*>) ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y )
A8: now__::_thesis:_(_n_<_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_square_&_(f_^_<*((f_/._(len_f))_*_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_*_x)*>)_/._n)_*_y_)_)
A9: f /. n = (f ^ <*((f /. (len f)) * x)*>) /. n by A4, A6, A7;
assume A10: n < len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y )
then ( n + 1 <> 0 & n + 1 < len (f ^ <*((f /. (len f)) * x)*>) ) by A3, NAT_1:5, XREAL_1:6;
then f /. (n + 1) = (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) by A4;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y ) by A1, A6, A10, A9, Def5; ::_thesis: verum
end;
A11: now__::_thesis:_(_n_=_len_f_implies_ex_y_being_Scalar_of_R_st_
(_y_is_being_a_square_&_(f_^_<*((f_/._(len_f))_*_x)*>)_/._(n_+_1)_=_((f_^_<*((f_/._(len_f))_*_x)*>)_/._n)_*_y_)_)
assume A12: n = len f ; ::_thesis: ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y )
1 <= n by A6, NAT_1:25;
then A13: n in dom f by A12, FINSEQ_3:25;
(f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = (f /. n) * x by A12, Lm3;
then (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * x by A13, Lm1;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y ) by A2; ::_thesis: verum
end;
n <= len f by A3, A7, NAT_1:13;
hence ex y being Scalar of R st
( y is being_a_square & (f ^ <*((f /. (len f)) * x)*>) /. (n + 1) = ((f ^ <*((f /. (len f)) * x)*>) /. n) * y ) by A8, A11, XXREAL_0:1; ::_thesis: verum
end;
len f <> 0 by A1, Def5;
then 1 <= len f by NAT_1:25;
then 1 < len (f ^ <*((f /. (len f)) * x)*>) by A3, NAT_1:13;
then (f ^ <*((f /. (len f)) * x)*>) /. 1 = f /. 1 by A4;
then A14: (f ^ <*((f /. (len f)) * x)*>) /. 1 is being_a_square by A1, Def5;
len (f ^ <*((f /. (len f)) * x)*>) <> 0 by A3, NAT_1:5;
hence f ^ <*((f /. (len f)) * x)*> is being_a_Product_of_squares by A14, A5, Def5; ::_thesis: verum
end;
Lm84: for R being non empty doubleLoopStr
for f, g being FinSequence of R st f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares holds
(f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_an_Amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares holds
(f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_an_Amalgam_of_squares
let f, g be FinSequence of R; ::_thesis: ( f is being_an_Amalgam_of_squares & g is being_an_Amalgam_of_squares implies (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_an_Amalgam_of_squares )
assume that
A1: f is being_an_Amalgam_of_squares and
A2: g is being_an_Amalgam_of_squares ; ::_thesis: (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_an_Amalgam_of_squares
len f <> 0 by A1, Def9;
then A3: ( (len f) + (len g) <= len (f ^ g) & (f ^ g) /. (len f) = f /. (len f) ) by Lm4, FINSEQ_1:22;
len g <> 0 by A2, Def9;
then A4: ( (len f) + (len g) <> 0 & (f ^ g) /. ((len f) + (len g)) = g /. (len g) ) by Lm5, NAT_1:7;
len f <= (len f) + (len g) by NAT_1:11;
then A5: len f <= len (f ^ g) by FINSEQ_1:22;
( len f <> 0 & f ^ g is being_an_Amalgam_of_squares ) by A1, A2, Def9, Lm80;
hence (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_an_Amalgam_of_squares by A5, A3, A4, Lm81; ::_thesis: verum
end;
Lm85: for R being non empty doubleLoopStr
for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
(f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for f, g being FinSequence of R st f is being_a_generation_from_squares & g is being_a_generation_from_squares holds
(f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares
let f, g be FinSequence of R; ::_thesis: ( f is being_a_generation_from_squares & g is being_a_generation_from_squares implies (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares )
assume that
A1: f is being_a_generation_from_squares and
A2: g is being_a_generation_from_squares ; ::_thesis: (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares
A3: len g <> 0 by A2, Def13;
then A4: (len f) + (len g) <> 0 by NAT_1:7;
len f <> 0 by A1, Def13;
then 1 <= len f by NAT_1:25;
then len f in dom f by FINSEQ_3:25;
then A5: ( (len f) + (len g) <= len (f ^ g) & (f ^ g) /. (len f) = f /. (len f) ) by Lm1, FINSEQ_1:22;
len f <= (len f) + (len g) by NAT_1:11;
then A6: len f <= len (f ^ g) by FINSEQ_1:22;
1 <= len g by A3, NAT_1:25;
then len g in dom g by FINSEQ_3:25;
then A7: (f ^ g) /. ((len f) + (len g)) = g /. (len g) by Lm1;
( f ^ g is being_a_generation_from_squares & len f <> 0 ) by A1, A2, Def13, Lm33;
hence (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares by A6, A4, A5, A7, Lm82; ::_thesis: verum
end;
theorem :: O_RING_1:39
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_square holds
x * y is being_a_product_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_square holds
x * y is being_a_product_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_square implies x * y is being_a_product_of_squares )
assume that
A1: x is being_a_product_of_squares and
A2: y is being_a_square ; ::_thesis: x * y is being_a_product_of_squares
consider f being FinSequence of R such that
A3: ( f is being_a_Product_of_squares & x = f /. (len f) ) by A1, Def6;
take g = f ^ <*(x * y)*>; :: according to O_RING_1:def_6 ::_thesis: ( g is being_a_Product_of_squares & x * y = g /. (len g) )
len g = (len f) + (len <*(x * y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Product_of_squares & x * y = g /. (len g) ) by A2, A3, Lm3, Lm83; ::_thesis: verum
end;
theorem :: O_RING_1:40
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_square holds
x * y is being_a_product_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_square holds
x * y is being_a_product_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_square implies x * y is being_a_product_of_squares )
assume that
A1: x is being_a_square and
A2: y is being_a_square ; ::_thesis: x * y is being_a_product_of_squares
x is being_a_product_of_squares by A1, Lm9;
then consider f being FinSequence of R such that
A3: ( f is being_a_Product_of_squares & x = f /. (len f) ) by Def6;
take g = f ^ <*(x * y)*>; :: according to O_RING_1:def_6 ::_thesis: ( g is being_a_Product_of_squares & x * y = g /. (len g) )
len g = (len f) + (len <*(x * y)*>) by FINSEQ_1:22
.= (len f) + 1 by Lm2 ;
hence ( g is being_a_Product_of_squares & x * y = g /. (len g) ) by A2, A3, Lm3, Lm83; ::_thesis: verum
end;
Lm86: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares implies x * y is being_an_amalgam_of_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x * y is being_an_amalgam_of_squares
consider f being FinSequence of R such that
A3: ( f is being_an_Amalgam_of_squares & x = f /. (len f) ) by A1, Def10;
consider g being FinSequence of R such that
A4: ( g is being_an_Amalgam_of_squares & y = g /. (len g) ) by A2, Def10;
take h = (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*>; :: according to O_RING_1:def_10 ::_thesis: ( h is being_an_Amalgam_of_squares & x * y = h /. (len h) )
len h = (len (f ^ g)) + (len <*((f /. (len f)) * (g /. (len g)))*>) by FINSEQ_1:22
.= (len (f ^ g)) + 1 by Lm2 ;
hence ( h is being_an_Amalgam_of_squares & x * y = h /. (len h) ) by A3, A4, Lm3, Lm84; ::_thesis: verum
end;
theorem :: O_RING_1:41
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_product_of_squares implies x * y is being_an_amalgam_of_squares )
assume ( x is being_a_square & y is being_a_product_of_squares ) ; ::_thesis: x * y is being_an_amalgam_of_squares
then ( x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares ) by Lm17, Lm19;
hence x * y is being_an_amalgam_of_squares by Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:42
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_an_amalgam_of_squares implies x * y is being_an_amalgam_of_squares )
assume that
A1: x is being_a_square and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x * y is being_an_amalgam_of_squares
x is being_an_amalgam_of_squares by A1, Lm17;
hence x * y is being_an_amalgam_of_squares by A2, Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:43
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_product_of_squares implies x * y is being_an_amalgam_of_squares )
assume ( x is being_a_product_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x * y is being_an_amalgam_of_squares
then ( x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares ) by Lm19;
hence x * y is being_an_amalgam_of_squares by Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:44
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_an_amalgam_of_squares implies x * y is being_an_amalgam_of_squares )
assume that
A1: x is being_a_product_of_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x * y is being_an_amalgam_of_squares
x is being_an_amalgam_of_squares by A1, Lm19;
hence x * y is being_an_amalgam_of_squares by A2, Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:45
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_square holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_square holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_square implies x * y is being_an_amalgam_of_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is being_a_square ; ::_thesis: x * y is being_an_amalgam_of_squares
y is being_an_amalgam_of_squares by A2, Lm17;
hence x * y is being_an_amalgam_of_squares by A1, Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:46
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_product_of_squares holds
x * y is being_an_amalgam_of_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_product_of_squares implies x * y is being_an_amalgam_of_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x * y is being_an_amalgam_of_squares
y is being_an_amalgam_of_squares by A2, Lm19;
hence x * y is being_an_amalgam_of_squares by A1, Lm86; ::_thesis: verum
end;
theorem :: O_RING_1:47
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_an_amalgam_of_squares holds
x * y is being_an_amalgam_of_squares by Lm86;
Lm87: for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
consider f being FinSequence of R such that
A3: f is being_a_generation_from_squares and
A4: x = f /. (len f) by A1, Def14;
consider g being FinSequence of R such that
A5: g is being_a_generation_from_squares and
A6: y = g /. (len g) by A2, Def14;
set h = (f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*>;
len ((f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*>) = (len (f ^ g)) + (len <*((f /. (len f)) * (g /. (len g)))*>) by FINSEQ_1:22
.= (len (f ^ g)) + 1 by Lm2 ;
then A7: ((f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*>) /. (len ((f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*>)) = x * (g /. (len g)) by A4, Lm3;
(f ^ g) ^ <*((f /. (len f)) * (g /. (len g)))*> is being_a_generation_from_squares by A3, A5, Lm85;
hence x * y is generated_from_squares by A6, A7, Def14; ::_thesis: verum
end;
theorem :: O_RING_1:48
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_square & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm38;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:49
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_square & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:50
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_square & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:51
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_square & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_square & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_square & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_a_square and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Lm31;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:52
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_square holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_square holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_square implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_square ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm38;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:53
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:54
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_product_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm49;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:55
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:56
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_an_amalgam_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm40;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:57
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:58
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_a_sum_of_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Lm38;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:59
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm49;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:60
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:61
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_product_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:62
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_product_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_product_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_product_of_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_a_product_of_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Lm49;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:63
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_square holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_square holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_square implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_square ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:64
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:65
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:66
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:67
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:68
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_products_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:69
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_products_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_products_of_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_a_sum_of_products_of_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Lm54;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:70
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Lm40;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:71
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Lm54;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:72
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_an_amalgam_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:73
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_an_amalgam_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_an_amalgam_of_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_an_amalgam_of_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Lm40;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:74
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_square holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_square holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_square implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_square ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm31, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:75
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm38, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:76
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_product_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm49, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:77
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_products_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm54, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:78
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_an_amalgam_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Lm40, Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:79
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume ( x is being_a_sum_of_amalgams_of_squares & y is being_a_sum_of_amalgams_of_squares ) ; ::_thesis: x * y is generated_from_squares
then ( x is generated_from_squares & y is generated_from_squares ) by Th1;
hence x * y is generated_from_squares by Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:80
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is being_a_sum_of_amalgams_of_squares & y is generated_from_squares implies x * y is generated_from_squares )
assume that
A1: x is being_a_sum_of_amalgams_of_squares and
A2: y is generated_from_squares ; ::_thesis: x * y is generated_from_squares
x is generated_from_squares by A1, Th1;
hence x * y is generated_from_squares by A2, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:81
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_square holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_square implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_square ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Lm31;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:82
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_an_amalgam_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_an_amalgam_of_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_an_amalgam_of_squares ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Lm40;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:83
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_squares ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Lm38;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:84
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_product_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_product_of_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_product_of_squares ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Lm49;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:85
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_products_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_products_of_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_products_of_squares ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Lm54;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;
theorem :: O_RING_1:86
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
proof
let R be non empty doubleLoopStr ; ::_thesis: for x, y being Scalar of R st x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares holds
x * y is generated_from_squares
let x, y be Scalar of R; ::_thesis: ( x is generated_from_squares & y is being_a_sum_of_amalgams_of_squares implies x * y is generated_from_squares )
assume that
A1: x is generated_from_squares and
A2: y is being_a_sum_of_amalgams_of_squares ; ::_thesis: x * y is generated_from_squares
y is generated_from_squares by A2, Th1;
hence x * y is generated_from_squares by A1, Lm87; ::_thesis: verum
end;