:: O_RING_1 semantic presentation
Lemma1:
for b1 being Nat st b1 < 1 holds
b1 = 0
Lemma2:
for b1 being Nat holds
( not b1 <= 1 or b1 = 0 or b1 = 1 )
:: deftheorem Def1 defines .: O_RING_1:def 1 :
Lemma4:
for b1 being non empty doubleLoopStr
for b2, b3, b4 being FinSequence of the carrier of b1 holds
( b2 = b3 ^ b4 iff ( dom b2 = Seg ((len b3) + (len b4)) & ( for b5 being Nat st b5 in dom b3 holds
b2 .: b5 = b3 .: b5 ) & ( for b5 being Nat st b5 in dom b4 holds
b2 .: ((len b3) + b5) = b4 .: b5 ) ) )
Lemma5:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 holds
( b3 = <*b2*> iff ( len b3 = 1 & b3 .: 1 = b2 ) )
Lemma6:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 holds (b3 ^ <*b2*>) .: ((len b3) + 1) = b2
Lemma7:
for b1 being Nat
for b2 being non empty doubleLoopStr
for b3, b4 being FinSequence of the carrier of b2 st b1 <> 0 & b1 <= len b3 holds
(b3 ^ b4) .: b1 = b3 .: b1
:: 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 :
Lemma10:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_a_Sum_of_squares
Lemma11:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 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 :
Lemma14:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_a_Product_of_squares
Lemma15:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 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 :
Lemma18:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_a_Sum_of_products_of_squares
Lemma19:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 is_a_sum_of_products_of_squares
Lemma20:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
<*b2*> is_a_Sum_of_products_of_squares
Lemma21:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
b2 is_a_sum_of_products_of_squares
Lemma22:
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 st b2 is_a_Sum_of_squares holds
b2 is_a_Sum_of_products_of_squares
Lemma23:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_sum_of_squares holds
b2 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 :
Lemma26:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_an_Amalgam_of_squares
Lemma27:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 is_an_amalgam_of_squares
Lemma28:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
<*b2*> is_an_Amalgam_of_squares
Lemma29:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
b2 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 :
Lemma32:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_a_Sum_of_amalgams_of_squares
Lemma33:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 is_a_sum_of_amalgams_of_squares
Lemma34:
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 st b2 is_a_Sum_of_squares holds
b2 is_a_Sum_of_amalgams_of_squares
Lemma35:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_sum_of_squares holds
b2 is_a_sum_of_amalgams_of_squares
Lemma36:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
<*b2*> is_a_Sum_of_amalgams_of_squares
Lemma37:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
b2 is_a_sum_of_amalgams_of_squares
Lemma38:
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 st b2 is_a_Sum_of_products_of_squares holds
b2 is_a_Sum_of_amalgams_of_squares
Lemma39:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_sum_of_products_of_squares holds
b2 is_a_sum_of_amalgams_of_squares
Lemma40:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_an_amalgam_of_squares holds
<*b2*> is_a_Sum_of_amalgams_of_squares
Lemma41:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_an_amalgam_of_squares holds
b2 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 :
Lemma44:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
<*b2*> is_a_generation_from_squares
Lemma45:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_square holds
b2 is_generated_from_squares
Lemma46:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_an_amalgam_of_squares holds
b3 ^ <*b2*> is_a_generation_from_squares
Lemma47:
for b1, b2 being Nat
for b3 being non empty doubleLoopStr
for b4 being FinSequence of the carrier of b3 st b4 is_a_generation_from_squares & b1 <> 0 & b1 <= len b4 & b2 <> 0 & b2 <= len b4 holds
b4 ^ <*((b4 .: b1) + (b4 .: b2))*> is_a_generation_from_squares
Lemma48:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_a_square holds
b3 ^ <*b2*> is_a_generation_from_squares
Lemma49:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_a_square holds
(b3 ^ <*b2*>) ^ <*((b3 .: (len b3)) + b2)*> is_a_generation_from_squares
Lemma50:
for b1 being non empty doubleLoopStr
for b2, b3 being Scalar of b1 st b2 is_generated_from_squares & b3 is_a_square holds
b2 + b3 is_generated_from_squares
Lemma51:
for b1 being Nat
for b2 being non empty doubleLoopStr
for b3 being FinSequence of the carrier of b2 st b3 is_a_Sum_of_squares & 0 <> b1 & b1 <= len b3 holds
b3 .: b1 is_generated_from_squares
Lemma52:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_sum_of_squares holds
b2 is_generated_from_squares
Lemma53:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_an_amalgam_of_squares holds
(b3 ^ <*b2*>) ^ <*((b3 .: (len b3)) + b2)*> is_a_generation_from_squares
Lemma54:
for b1 being non empty doubleLoopStr
for b2, b3 being Scalar of b1 st b2 is_generated_from_squares & b3 is_an_amalgam_of_squares holds
b2 + b3 is_generated_from_squares
Lemma55:
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 st b2 is_an_Amalgam_of_squares holds
b2 is_a_generation_from_squares
Lemma56:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_an_amalgam_of_squares holds
b2 is_generated_from_squares
Lemma57:
for b1, b2 being Nat
for b3 being non empty doubleLoopStr
for b4 being FinSequence of the carrier of b3 st b4 is_a_generation_from_squares & b1 <> 0 & b1 <= len b4 & b2 <> 0 & b2 <= len b4 holds
b4 ^ <*((b4 .: b1) * (b4 .: b2))*> is_a_generation_from_squares
Lemma58:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_a_square holds
(b3 ^ <*b2*>) ^ <*((b3 .: (len b3)) * b2)*> is_a_generation_from_squares
Lemma59:
for b1 being non empty doubleLoopStr
for b2, b3 being Scalar of b1 st b2 is_generated_from_squares & b3 is_a_square holds
b2 * b3 is_generated_from_squares
Lemma60:
for b1 being Nat
for b2 being non empty doubleLoopStr
for b3 being FinSequence of the carrier of b2 st b3 is_a_Product_of_squares & 0 <> b1 & b1 <= len b3 holds
b3 .: b1 is_generated_from_squares
Lemma61:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_product_of_squares holds
b2 is_generated_from_squares
Lemma62:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_a_product_of_squares holds
b3 ^ <*b2*> is_a_generation_from_squares
Lemma63:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1
for b3 being FinSequence of the carrier of b1 st b3 is_a_generation_from_squares & b2 is_a_product_of_squares holds
(b3 ^ <*b2*>) ^ <*((b3 .: (len b3)) + b2)*> is_a_generation_from_squares
Lemma64:
for b1 being non empty doubleLoopStr
for b2, b3 being Scalar of b1 st b2 is_generated_from_squares & b3 is_a_product_of_squares holds
b2 + b3 is_generated_from_squares
Lemma65:
for b1 being Nat
for b2 being non empty doubleLoopStr
for b3 being FinSequence of the carrier of b2 st b3 is_a_Sum_of_products_of_squares & 0 <> b1 & b1 <= len b3 holds
b3 .: b1 is_generated_from_squares
Lemma66:
for b1 being non empty doubleLoopStr
for b2 being Scalar of b1 st b2 is_a_sum_of_products_of_squares holds
b2 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
Lemma67:
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 st b2 is_a_Sum_of_amalgams_of_squares holds
for b3 being Nat st b3 <> 0 & b3 <= len b2 holds
b2 .: b3 is_generated_from_squares
theorem Th6: :: O_RING_1:6