:: 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;