:: O_RING_1 semantic presentation
Lemma20:
for n being Element of NAT st n < 1 holds
n = 0
Lemma21:
for n being Element of NAT holds
( not n <= 1 or n = 0 or n = 1 )
Lemma28:
for R being non empty doubleLoopStr
for h, f, g being FinSequence of the carrier of R holds
( h = f ^ g iff ( dom h = Seg ((len f) + (len g)) & ( for k being Element of NAT st k in dom f holds
h /. k = f /. k ) & ( for k being Element of NAT st k in dom g holds
h /. ((len f) + k) = g /. k ) ) )
Lemma45:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R holds
( f = <*x*> iff ( len f = 1 & f /. 1 = x ) )
Lemma46:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R holds (f ^ <*x*>) /. ((len f) + 1) = x
Lemma47:
for i being Element of NAT
for R being non empty doubleLoopStr
for f, g being FinSequence of the carrier of R st i <> 0 & i <= len f holds
(f ^ g) /. i = f /. i
:: deftheorem Def1 O_RING_1:def 1 :
canceled;
:: deftheorem Def2 defines ^2 O_RING_1:def 2 :
:: deftheorem Def3 defines being_a_square O_RING_1:def 3 :
:: deftheorem Def4 defines being_a_Sum_of_squares O_RING_1:def 4 :
:: deftheorem Def5 defines being_a_sum_of_squares O_RING_1:def 5 :
Lemma50:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_a_Sum_of_squares
Lemma51:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_a_sum_of_squares
:: deftheorem Def6 defines being_a_Product_of_squares O_RING_1:def 6 :
:: deftheorem Def7 defines being_a_product_of_squares O_RING_1:def 7 :
Lemma54:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_a_Product_of_squares
Lemma55:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_a_product_of_squares
:: deftheorem Def8 defines being_a_Sum_of_products_of_squares O_RING_1:def 8 :
:: deftheorem Def9 defines being_a_sum_of_products_of_squares O_RING_1:def 9 :
Lemma58:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_a_Sum_of_products_of_squares
Lemma59:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_a_sum_of_products_of_squares
Lemma60:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
<*x*> is_a_Sum_of_products_of_squares
Lemma61:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
x is_a_sum_of_products_of_squares
Lemma62:
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_squares holds
f is_a_Sum_of_products_of_squares
Lemma63:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_sum_of_squares holds
x is_a_sum_of_products_of_squares
:: deftheorem Def10 defines being_an_Amalgam_of_squares O_RING_1:def 10 :
:: deftheorem Def11 defines being_an_amalgam_of_squares O_RING_1:def 11 :
Lemma66:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_an_Amalgam_of_squares
Lemma67:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_an_amalgam_of_squares
Lemma68:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
<*x*> is_an_Amalgam_of_squares
Lemma69:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
x is_an_amalgam_of_squares
:: deftheorem Def12 defines being_a_Sum_of_amalgams_of_squares O_RING_1:def 12 :
:: deftheorem Def13 defines being_a_sum_of_amalgams_of_squares O_RING_1:def 13 :
Lemma72:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_a_Sum_of_amalgams_of_squares
Lemma73:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_a_sum_of_amalgams_of_squares
Lemma74:
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_squares holds
f is_a_Sum_of_amalgams_of_squares
Lemma75:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_sum_of_squares holds
x is_a_sum_of_amalgams_of_squares
Lemma76:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
<*x*> is_a_Sum_of_amalgams_of_squares
Lemma77:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
x is_a_sum_of_amalgams_of_squares
Lemma78:
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_products_of_squares holds
f is_a_Sum_of_amalgams_of_squares
Lemma79:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_sum_of_products_of_squares holds
x is_a_sum_of_amalgams_of_squares
Lemma80:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_an_amalgam_of_squares holds
<*x*> is_a_Sum_of_amalgams_of_squares
Lemma81:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_an_amalgam_of_squares holds
x is_a_sum_of_amalgams_of_squares
:: deftheorem Def14 defines being_a_generation_from_squares O_RING_1:def 14 :
:: deftheorem Def15 defines generated_from_squares O_RING_1:def 15 :
Lemma84:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
<*x*> is_a_generation_from_squares
Lemma85:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_square holds
x is_generated_from_squares
Lemma86:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_an_amalgam_of_squares holds
f ^ <*x*> is_a_generation_from_squares
Lemma87:
for i, j being Element of NAT
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) + (f /. j))*> is_a_generation_from_squares
Lemma88:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_a_square holds
f ^ <*x*> is_a_generation_from_squares
Lemma89:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is_a_generation_from_squares
Lemma90:
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is_generated_from_squares & y is_a_square holds
x + y is_generated_from_squares
Lemma91:
for i being Element of NAT
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_squares & 0 <> i & i <= len f holds
f /. i is_generated_from_squares
Lemma93:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_sum_of_squares holds
x is_generated_from_squares
Lemma94:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_an_amalgam_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is_a_generation_from_squares
Lemma95:
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is_generated_from_squares & y is_an_amalgam_of_squares holds
x + y is_generated_from_squares
Lemma96:
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_an_Amalgam_of_squares holds
f is_a_generation_from_squares
Lemma97:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_an_amalgam_of_squares holds
x is_generated_from_squares
Lemma98:
for i, j being Element of NAT
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & i <> 0 & i <= len f & j <> 0 & j <= len f holds
f ^ <*((f /. i) * (f /. j))*> is_a_generation_from_squares
Lemma99:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_a_square holds
(f ^ <*x*>) ^ <*((f /. (len f)) * x)*> is_a_generation_from_squares
Lemma100:
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is_generated_from_squares & y is_a_square holds
x * y is_generated_from_squares
Lemma101:
for i being Element of NAT
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Product_of_squares & 0 <> i & i <= len f holds
f /. i is_generated_from_squares
Lemma102:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_product_of_squares holds
x is_generated_from_squares
Lemma103:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_a_product_of_squares holds
f ^ <*x*> is_a_generation_from_squares
Lemma104:
for R being non empty doubleLoopStr
for x being Scalar of R
for f being FinSequence of the carrier of R st f is_a_generation_from_squares & x is_a_product_of_squares holds
(f ^ <*x*>) ^ <*((f /. (len f)) + x)*> is_a_generation_from_squares
Lemma105:
for R being non empty doubleLoopStr
for x, y being Scalar of R st x is_generated_from_squares & y is_a_product_of_squares holds
x + y is_generated_from_squares
Lemma106:
for i being Element of NAT
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_products_of_squares & 0 <> i & i <= len f holds
f /. i is_generated_from_squares
Lemma107:
for R being non empty doubleLoopStr
for x being Scalar of R st x is_a_sum_of_products_of_squares holds
x is_generated_from_squares
theorem Th1: :: O_RING_1:1
theorem Th2: :: O_RING_1:2
theorem Th3: :: O_RING_1:3
theorem Th4: :: O_RING_1:4
theorem Th5: :: O_RING_1:5
Lemma108:
for R being non empty doubleLoopStr
for f being FinSequence of the carrier of R st f is_a_Sum_of_amalgams_of_squares holds
for i being Element of NAT st i <> 0 & i <= len f holds
f /. i is_generated_from_squares
theorem Th6: :: O_RING_1:6