Article EULER_2, MML version 4.99.1005

:: EULER_2:th 1
theorem
for b1, b2 being natural set holds
   b1,b2 are_relative_prime
iff
   b1,b2 are_relative_prime;

:: EULER_2:th 2
theorem
for b1 being natural set
for b2 being integer set
      st 1 < b1 & 1 <= b1 * b2
   holds 1 <= b2;

:: EULER_2:th 5
theorem
for b1, b2, b3 being natural set
      st b1 <> {} & b2 <> {} & b3 <> {} & b1,b3 are_relative_prime & b2,b3 are_relative_prime
   holds b3,(b1 * b2) mod b3 are_relative_prime;

:: EULER_2:th 6
theorem
for b1, b2, b3, b4 being natural set
      st 1 < b1 & b2 <> {} & b1,b3 are_relative_prime & b4,b1 are_relative_prime & b3 = (b4 * b2) mod b1
   holds b1,b2 are_relative_prime;

:: EULER_2:th 7
theorem
for b1, b2 being natural set holds
(b1 mod b2) mod b2 = b1 mod b2;

:: EULER_2:th 8
theorem
for b1, b2, b3 being natural set holds
(b1 + b2) mod b3 = ((b1 mod b3) + (b2 mod b3)) mod b3;

:: EULER_2:th 9
theorem
for b1, b2, b3 being natural set holds
(b1 * b2) mod b3 = (b1 * (b2 mod b3)) mod b3;

:: EULER_2:th 10
theorem
for b1, b2, b3 being natural set holds
(b1 * b2) mod b3 = ((b1 mod b3) * b2) mod b3;

:: EULER_2:th 11
theorem
for b1, b2, b3 being natural set holds
(b1 * b2) mod b3 = ((b1 mod b3) * (b2 mod b3)) mod b3;

:: EULER_2:funcnot 1 => EULER_2:func 1
definition
  let a1 be FinSequence of NAT;
  let a2 be natural set;
  redefine func a2 * a1 -> FinSequence of NAT;
end;

:: EULER_2:th 25
theorem
for b1, b2 being FinSequence of NAT
      st b1,b2 are_fiberwise_equipotent
   holds Product b1 = Product b2;

:: EULER_2:funcnot 2 => EULER_2:func 2
definition
  let a1 be FinSequence of NAT;
  let a2 be natural set;
  func A1 mod A2 -> FinSequence of NAT means
    len it = len a1 &
     (for b1 being natural set
           st b1 in dom a1
        holds it . b1 = (a1 . b1) mod a2);
end;

:: EULER_2:def 1
theorem
for b1 being FinSequence of NAT
for b2 being natural set
for b3 being FinSequence of NAT holds
      b3 = b1 mod b2
   iff
      len b3 = len b1 &
       (for b4 being natural set
             st b4 in dom b1
          holds b3 . b4 = (b1 . b4) mod b2);

:: EULER_2:th 26
theorem
for b1 being natural set
for b2 being FinSequence of NAT
      st b1 <> {}
   holds (Product (b2 mod b1)) mod b1 = (Product b2) mod b1;

:: EULER_2:th 27
theorem
for b1, b2, b3 being natural set
      st b1 <> {} & 1 < b2 & b3 <> {} & (b1 * b3) mod b2 = b3 mod b2 & b2,b3 are_relative_prime
   holds b1 mod b2 = 1;

:: EULER_2:th 28
theorem
for b1 being natural set
for b2 being FinSequence of NAT holds
   (b2 mod b1) mod b1 = b2 mod b1;

:: EULER_2:th 29
theorem
for b1, b2 being natural set
for b3 being FinSequence of NAT holds
   (b1 * (b3 mod b2)) mod b2 = (b1 * b3) mod b2;

:: EULER_2:th 30
theorem
for b1 being natural set
for b2, b3 being FinSequence of NAT holds
(b2 ^ b3) mod b1 = (b2 mod b1) ^ (b3 mod b1);

:: EULER_2:th 31
theorem
for b1, b2 being natural set
for b3, b4 being FinSequence of NAT holds
(b1 * (b3 ^ b4)) mod b2 = ((b1 * b3) mod b2) ^ ((b1 * b4) mod b2);

:: EULER_2:th 32
theorem
for b1, b2 being natural set
   st b1 <> {} & b2 <> {} & b1,b2 are_relative_prime
for b3 being natural set holds
   b1 |^ b3,b2 are_relative_prime;

:: EULER_2:th 33
theorem
for b1, b2 being natural set
      st b1 <> {} & 1 < b2 & b1,b2 are_relative_prime
   holds (b1 |^ Euler b2) mod b2 = 1;

:: EULER_2:th 34
theorem
for b1, b2 being natural set
      st b1 <> {} & b2 is prime & b1,b2 are_relative_prime
   holds (b1 |^ b2) mod b2 = b1 mod b2;