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