let R be 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
let f be FinSequence of R; ( f is being_an_Amalgam_of_squares implies f is being_a_generation_from_squares )
assume A1:
f is being_an_Amalgam_of_squares
; f is being_a_generation_from_squares
hence
len f <> 0
by Def10; O_RING_1:def 13 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; ( 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 )
; ( 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, Def10; verum