Article O_RING_1, MML version 4.99.1005
:: O_RING_1:funcnot 1 => O_RING_1:func 1
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
func A2 ^2 -> Element of the carrier of a1 equals
a2 * a2;
end;
:: O_RING_1:def 2
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 ^2 = b2 * b2;
:: O_RING_1:attrnot 1 => O_RING_1:attr 1
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_a_square means
ex b1 being Element of the carrier of a1 st
a2 = b1 ^2;
end;
:: O_RING_1:dfs 2
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_a_square
it is sufficient to prove
thus ex b1 being Element of the carrier of a1 st
a2 = b1 ^2;
:: O_RING_1:def 3
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_a_square(b1)
iff
ex b3 being Element of the carrier of b1 st
b2 = b3 ^2;
:: O_RING_1:prednot 1 => O_RING_1:attr 1
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_a_square for being_a_square;
end;
:: O_RING_1:attrnot 2 => O_RING_1:attr 2
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_a_Sum_of_squares means
len a2 <> 0 &
a2 /. 1 is being_a_square(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_square(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
end;
:: O_RING_1:dfs 3
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_a_Sum_of_squares
it is sufficient to prove
thus len a2 <> 0 &
a2 /. 1 is being_a_square(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_square(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
:: O_RING_1:def 4
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_a_Sum_of_squares(b1)
iff
len b2 <> 0 &
b2 /. 1 is being_a_square(b1) &
(for b3 being natural set
st b3 <> 0 & b3 < len b2
holds ex b4 being Element of the carrier of b1 st
b4 is being_a_square(b1) &
b2 /. (b3 + 1) = (b2 /. b3) + b4);
:: O_RING_1:prednot 2 => O_RING_1:attr 2
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_a_Sum_of_squares for being_a_Sum_of_squares;
end;
:: O_RING_1:attrnot 3 => O_RING_1:attr 3
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_a_sum_of_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 4
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_a_sum_of_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 5
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_a_sum_of_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_a_Sum_of_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 3 => O_RING_1:attr 3
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_a_sum_of_squares for being_a_sum_of_squares;
end;
:: O_RING_1:attrnot 4 => O_RING_1:attr 4
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_a_Product_of_squares means
len a2 <> 0 &
a2 /. 1 is being_a_square(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_square(a1) &
a2 /. (b1 + 1) = (a2 /. b1) * b2);
end;
:: O_RING_1:dfs 5
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_a_Product_of_squares
it is sufficient to prove
thus len a2 <> 0 &
a2 /. 1 is being_a_square(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_square(a1) &
a2 /. (b1 + 1) = (a2 /. b1) * b2);
:: O_RING_1:def 6
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_a_Product_of_squares(b1)
iff
len b2 <> 0 &
b2 /. 1 is being_a_square(b1) &
(for b3 being natural set
st b3 <> 0 & b3 < len b2
holds ex b4 being Element of the carrier of b1 st
b4 is being_a_square(b1) &
b2 /. (b3 + 1) = (b2 /. b3) * b4);
:: O_RING_1:prednot 4 => O_RING_1:attr 4
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_a_Product_of_squares for being_a_Product_of_squares;
end;
:: O_RING_1:attrnot 5 => O_RING_1:attr 5
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_a_product_of_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Product_of_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 6
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_a_product_of_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Product_of_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 7
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_a_product_of_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_a_Product_of_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 5 => O_RING_1:attr 5
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_a_product_of_squares for being_a_product_of_squares;
end;
:: O_RING_1:attrnot 6 => O_RING_1:attr 6
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_a_Sum_of_products_of_squares means
len a2 <> 0 &
a2 /. 1 is being_a_product_of_squares(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_product_of_squares(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
end;
:: O_RING_1:dfs 7
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_a_Sum_of_products_of_squares
it is sufficient to prove
thus len a2 <> 0 &
a2 /. 1 is being_a_product_of_squares(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_a_product_of_squares(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
:: O_RING_1:def 8
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_a_Sum_of_products_of_squares(b1)
iff
len b2 <> 0 &
b2 /. 1 is being_a_product_of_squares(b1) &
(for b3 being natural set
st b3 <> 0 & b3 < len b2
holds ex b4 being Element of the carrier of b1 st
b4 is being_a_product_of_squares(b1) &
b2 /. (b3 + 1) = (b2 /. b3) + b4);
:: O_RING_1:prednot 6 => O_RING_1:attr 6
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_a_Sum_of_products_of_squares for being_a_Sum_of_products_of_squares;
end;
:: O_RING_1:attrnot 7 => O_RING_1:attr 7
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_a_sum_of_products_of_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_products_of_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 8
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_a_sum_of_products_of_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_products_of_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 9
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_a_sum_of_products_of_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_a_Sum_of_products_of_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 7 => O_RING_1:attr 7
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_a_sum_of_products_of_squares for being_a_sum_of_products_of_squares;
end;
:: O_RING_1:attrnot 8 => O_RING_1:attr 8
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_an_Amalgam_of_squares means
len a2 <> 0 &
(for b1 being natural set
st b1 <> 0 & b1 <= len a2 & a2 /. b1 is not being_a_product_of_squares(a1)
holds ex b2, b3 being natural set st
a2 /. b1 = (a2 /. b2) * (a2 /. b3) &
b2 <> 0 &
b2 < b1 &
b3 <> 0 &
b3 < b1);
end;
:: O_RING_1:dfs 9
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_an_Amalgam_of_squares
it is sufficient to prove
thus len a2 <> 0 &
(for b1 being natural set
st b1 <> 0 & b1 <= len a2 & a2 /. b1 is not being_a_product_of_squares(a1)
holds ex b2, b3 being natural set st
a2 /. b1 = (a2 /. b2) * (a2 /. b3) &
b2 <> 0 &
b2 < b1 &
b3 <> 0 &
b3 < b1);
:: O_RING_1:def 10
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_an_Amalgam_of_squares(b1)
iff
len b2 <> 0 &
(for b3 being natural set
st b3 <> 0 & b3 <= len b2 & b2 /. b3 is not being_a_product_of_squares(b1)
holds ex b4, b5 being natural set st
b2 /. b3 = (b2 /. b4) * (b2 /. b5) &
b4 <> 0 &
b4 < b3 &
b5 <> 0 &
b5 < b3);
:: O_RING_1:prednot 8 => O_RING_1:attr 8
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_an_Amalgam_of_squares for being_an_Amalgam_of_squares;
end;
:: O_RING_1:attrnot 9 => O_RING_1:attr 9
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_an_amalgam_of_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_an_Amalgam_of_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 10
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_an_amalgam_of_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_an_Amalgam_of_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 11
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_an_amalgam_of_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_an_Amalgam_of_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 9 => O_RING_1:attr 9
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_an_amalgam_of_squares for being_an_amalgam_of_squares;
end;
:: O_RING_1:attrnot 10 => O_RING_1:attr 10
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_a_Sum_of_amalgams_of_squares means
len a2 <> 0 &
a2 /. 1 is being_an_amalgam_of_squares(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_an_amalgam_of_squares(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
end;
:: O_RING_1:dfs 11
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_a_Sum_of_amalgams_of_squares
it is sufficient to prove
thus len a2 <> 0 &
a2 /. 1 is being_an_amalgam_of_squares(a1) &
(for b1 being natural set
st b1 <> 0 & b1 < len a2
holds ex b2 being Element of the carrier of a1 st
b2 is being_an_amalgam_of_squares(a1) &
a2 /. (b1 + 1) = (a2 /. b1) + b2);
:: O_RING_1:def 12
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_a_Sum_of_amalgams_of_squares(b1)
iff
len b2 <> 0 &
b2 /. 1 is being_an_amalgam_of_squares(b1) &
(for b3 being natural set
st b3 <> 0 & b3 < len b2
holds ex b4 being Element of the carrier of b1 st
b4 is being_an_amalgam_of_squares(b1) &
b2 /. (b3 + 1) = (b2 /. b3) + b4);
:: O_RING_1:prednot 10 => O_RING_1:attr 10
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_a_Sum_of_amalgams_of_squares for being_a_Sum_of_amalgams_of_squares;
end;
:: O_RING_1:attrnot 11 => O_RING_1:attr 11
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is being_a_sum_of_amalgams_of_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_amalgams_of_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 12
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is being_a_sum_of_amalgams_of_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_Sum_of_amalgams_of_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 13
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is being_a_sum_of_amalgams_of_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_a_Sum_of_amalgams_of_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 11 => O_RING_1:attr 11
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_a_sum_of_amalgams_of_squares for being_a_sum_of_amalgams_of_squares;
end;
:: O_RING_1:attrnot 12 => O_RING_1:attr 12
definition
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
attr a2 is being_a_generation_from_squares means
len a2 <> 0 &
(for b1 being natural set
st b1 <> 0 & b1 <= len a2 & a2 /. b1 is not being_an_amalgam_of_squares(a1)
holds ex b2, b3 being natural set st
(a2 /. b1 = (a2 /. b2) * (a2 /. b3) or a2 /. b1 = (a2 /. b2) + (a2 /. b3)) &
b2 <> 0 &
b2 < b1 &
b3 <> 0 &
b3 < b1);
end;
:: O_RING_1:dfs 13
definiens
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
To prove
a2 is being_a_generation_from_squares
it is sufficient to prove
thus len a2 <> 0 &
(for b1 being natural set
st b1 <> 0 & b1 <= len a2 & a2 /. b1 is not being_an_amalgam_of_squares(a1)
holds ex b2, b3 being natural set st
(a2 /. b1 = (a2 /. b2) * (a2 /. b3) or a2 /. b1 = (a2 /. b2) + (a2 /. b3)) &
b2 <> 0 &
b2 < b1 &
b3 <> 0 &
b3 < b1);
:: O_RING_1:def 14
theorem
for b1 being non empty doubleLoopStr
for b2 being FinSequence of the carrier of b1 holds
b2 is being_a_generation_from_squares(b1)
iff
len b2 <> 0 &
(for b3 being natural set
st b3 <> 0 & b3 <= len b2 & b2 /. b3 is not being_an_amalgam_of_squares(b1)
holds ex b4, b5 being natural set st
(b2 /. b3 = (b2 /. b4) * (b2 /. b5) or b2 /. b3 = (b2 /. b4) + (b2 /. b5)) &
b4 <> 0 &
b4 < b3 &
b5 <> 0 &
b5 < b3);
:: O_RING_1:prednot 12 => O_RING_1:attr 12
notation
let a1 be non empty doubleLoopStr;
let a2 be FinSequence of the carrier of a1;
synonym a2 is_a_generation_from_squares for being_a_generation_from_squares;
end;
:: O_RING_1:attrnot 13 => O_RING_1:attr 13
definition
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
attr a2 is generated_from_squares means
ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_generation_from_squares(a1) & a2 = b1 /. len b1;
end;
:: O_RING_1:dfs 14
definiens
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
To prove
a2 is generated_from_squares
it is sufficient to prove
thus ex b1 being FinSequence of the carrier of a1 st
b1 is being_a_generation_from_squares(a1) & a2 = b1 /. len b1;
:: O_RING_1:def 15
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1 holds
b2 is generated_from_squares(b1)
iff
ex b3 being FinSequence of the carrier of b1 st
b3 is being_a_generation_from_squares(b1) & b2 = b3 /. len b3;
:: O_RING_1:prednot 13 => O_RING_1:attr 13
notation
let a1 be non empty doubleLoopStr;
let a2 be Element of the carrier of a1;
synonym a2 is_generated_from_squares for generated_from_squares;
end;
:: O_RING_1:th 1
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 is generated_from_squares(b1);
:: O_RING_1:th 2
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_a_square(b1)
holds b2 is being_a_sum_of_squares(b1) & b2 is being_a_product_of_squares(b1) & b2 is being_a_sum_of_products_of_squares(b1) & b2 is being_an_amalgam_of_squares(b1) & b2 is being_a_sum_of_amalgams_of_squares(b1) & b2 is generated_from_squares(b1);
:: O_RING_1:th 3
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1)
holds b2 is being_a_sum_of_products_of_squares(b1) & b2 is being_a_sum_of_amalgams_of_squares(b1) & b2 is generated_from_squares(b1);
:: O_RING_1:th 4
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1)
holds b2 is being_a_sum_of_products_of_squares(b1) & b2 is being_an_amalgam_of_squares(b1) & b2 is being_a_sum_of_amalgams_of_squares(b1) & b2 is generated_from_squares(b1);
:: O_RING_1:th 5
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1)
holds b2 is being_a_sum_of_amalgams_of_squares(b1) & b2 is generated_from_squares(b1);
:: O_RING_1:th 6
theorem
for b1 being non empty doubleLoopStr
for b2 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1)
holds b2 is being_a_sum_of_amalgams_of_squares(b1) & b2 is generated_from_squares(b1);
:: O_RING_1:th 7
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st (b2 is being_a_square(b1) & b3 is being_a_square(b1) or b2 is being_a_sum_of_squares(b1) & b3 is being_a_square(b1))
holds b2 + b3 is being_a_sum_of_squares(b1);
:: O_RING_1:th 8
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st (b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_square(b1) or b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_product_of_squares(b1))
holds b2 + b3 is being_a_sum_of_products_of_squares(b1);
:: O_RING_1:th 9
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st (b2 is being_an_amalgam_of_squares(b1) & (b3 is being_a_product_of_squares(b1) or b3 is being_an_amalgam_of_squares(b1)) or b2 is being_a_sum_of_amalgams_of_squares(b1) &
(b3 is not being_a_square(b1) & b3 is not being_a_product_of_squares(b1) implies b3 is being_an_amalgam_of_squares(b1)))
holds b2 + b3 is being_a_sum_of_amalgams_of_squares(b1);
:: O_RING_1:th 10
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) &
(b3 is not being_a_sum_of_squares(b1) & b3 is not being_a_product_of_squares(b1) & b3 is not being_a_sum_of_products_of_squares(b1) & b3 is not being_an_amalgam_of_squares(b1) & b3 is not being_a_sum_of_amalgams_of_squares(b1) implies b3 is generated_from_squares(b1))
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 11
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 12
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 13
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 14
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 15
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 16
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 17
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 18
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 19
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 20
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 21
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 22
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 23
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_square(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 24
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 25
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 26
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 27
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 28
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 29
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 30
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_square(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 31
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 32
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 33
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 34
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 35
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 36
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 37
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 38
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st ((b2 is generated_from_squares(b1) implies b3 is not being_a_square(b1)) & (b2 is generated_from_squares(b1) implies b3 is not being_a_sum_of_squares(b1)) & (b2 is generated_from_squares(b1) implies b3 is not being_a_product_of_squares(b1)) & (b2 is generated_from_squares(b1) implies b3 is not being_a_sum_of_products_of_squares(b1)) & (b2 is generated_from_squares(b1) implies b3 is not being_an_amalgam_of_squares(b1)) & (b2 is generated_from_squares(b1) implies b3 is not being_a_sum_of_amalgams_of_squares(b1)) implies b2 is generated_from_squares(b1) & b3 is generated_from_squares(b1))
holds b2 + b3 is generated_from_squares(b1);
:: O_RING_1:th 39
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is being_a_product_of_squares(b1);
:: O_RING_1:th 40
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_a_square(b1)
holds b2 * b3 is being_a_product_of_squares(b1);
:: O_RING_1:th 41
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 42
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 43
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 44
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 45
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 46
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 47
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is being_an_amalgam_of_squares(b1);
:: O_RING_1:th 48
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 49
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 50
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 51
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_square(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 52
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 53
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 54
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 55
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 56
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 57
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 58
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 59
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 60
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 61
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 62
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_product_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 63
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 64
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 65
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 66
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 67
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 68
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 69
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_products_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 70
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 71
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 72
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 73
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_an_amalgam_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 74
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 75
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 76
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 77
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 78
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 79
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 80
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is being_a_sum_of_amalgams_of_squares(b1) & b3 is generated_from_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 81
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_a_square(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 82
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_an_amalgam_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 83
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_a_sum_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 84
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_a_product_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 85
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_a_sum_of_products_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);
:: O_RING_1:th 86
theorem
for b1 being non empty doubleLoopStr
for b2, b3 being Element of the carrier of b1
st b2 is generated_from_squares(b1) & b3 is being_a_sum_of_amalgams_of_squares(b1)
holds b2 * b3 is generated_from_squares(b1);