Article INT_5, MML version 4.99.1005

:: INT_5:th 1
theorem
for b1, b2, b3 being integer set
      st b1 divides b2 & b1 divides b3
   holds b1 divides b2 - b3;

:: INT_5:th 2
theorem
for b1, b2, b3 being integer set
      st b1 divides b2 & b1 divides b2 - b3
   holds b1 divides b3;

:: INT_5:funcnot 1 => INT_5:func 1
definition
  let a1 be FinSequence of INT;
  func Poly-INT A1 -> Function-like quasi_total Relation of INT,INT means
    for b1 being Element of INT holds
       ex b2 being FinSequence of INT st
          len b2 = len a1 &
           (for b3 being natural set
                 st b3 in dom b2
              holds b2 . b3 = (a1 . b3) * (b1 |^ (b3 -' 1))) &
           it . b1 = Sum b2;
end;

:: INT_5:def 1
theorem
for b1 being FinSequence of INT
for b2 being Function-like quasi_total Relation of INT,INT holds
      b2 = Poly-INT b1
   iff
      for b3 being Element of INT holds
         ex b4 being FinSequence of INT st
            len b4 = len b1 &
             (for b5 being natural set
                   st b5 in dom b4
                holds b4 . b5 = (b1 . b5) * (b3 |^ (b5 -' 1))) &
             b2 . b3 = Sum b4;

:: INT_5:funcreg 1
registration
  let a1 be FinSequence of INT;
  let a2 be integer set;
  cluster (Poly-INT a1) . a2 -> integer;
end;

:: INT_5:th 3
theorem
for b1 being FinSequence of INT
      st len b1 = 1
   holds Poly-INT b1 = INT --> (b1 . 1);

:: INT_5:th 4
theorem
for b1 being FinSequence of INT
   st len b1 = 1
for b2 being Element of INT holds
   (Poly-INT b1) . b2 = b1 . 1;

:: INT_5:th 5
theorem
for b1 being natural set
for b2, b3, b4 being FinSequence of REAL
      st len b2 = b1 + 1 &
         len b3 = len b2 &
         len b4 = len b2 &
         (for b5 being natural set
               st b5 in dom b2
            holds b2 . b5 = (b3 . b5) - (b4 . b5))
   holds ex b5 being FinSequence of REAL st
      len b5 = (len b2) - 1 &
       (for b6 being natural set
             st b6 in dom b5
          holds b5 . b6 = (b3 . b6) - (b4 . (b6 + 1))) &
       Sum b2 = ((Sum b5) + (b3 . (b1 + 1))) - (b4 . 1);

:: INT_5:th 6
theorem
for b1 being natural set
for b2 being FinSequence of INT
   st len b2 = b1 + 2
for b3 being integer set holds
   ex b4 being FinSequence of INT st
      ex b5 being integer set st
         len b4 = b1 + 1 &
          (for b6 being Element of INT holds
             (Poly-INT b2) . b6 = ((b6 - b3) * ((Poly-INT b4) . b6)) + b5) &
          b2 . (b1 + 2) = b4 . (b1 + 1);

:: INT_5:th 7
theorem
for b1, b2 being integer set
for b3 being natural prime set
      st b3 divides b1 * b2 & not b3 divides b1
   holds b3 divides b2;

:: INT_5:th 8
theorem
for b1 being natural set
for b2 being natural prime set
for b3 being FinSequence of INT
   st len b3 = b1 + 1 & 2 < b2 & not b2 divides b3 . (b1 + 1)
for b4 being FinSequence of INT
      st (for b5 being natural set
               st b5 in dom b4
            holds ((Poly-INT b3) . (b4 . b5)) mod b2 = 0) &
         (for b5, b6 being natural set
               st b5 in dom b4 & b6 in dom b4 & b5 <> b6
            holds not b4 . b5,b4 . b6 are_congruent_mod b2)
   holds len b4 <= b1;

:: INT_5:prednot 1 => INT_5:pred 1
definition
  let a1 be integer set;
  let a2 be natural set;
  pred A1 is_quadratic_residue_mod A2 means
    ex b1 being integer set st
       (b1 ^2 - a1) mod a2 = 0;
end;

:: INT_5:dfs 2
definiens
  let a1 be integer set;
  let a2 be natural set;
To prove
     a1 is_quadratic_residue_mod a2
it is sufficient to prove
  thus ex b1 being integer set st
       (b1 ^2 - a1) mod a2 = 0;

:: INT_5:def 2
theorem
for b1 being integer set
for b2 being natural set holds
      b1 is_quadratic_residue_mod b2
   iff
      ex b3 being integer set st
         (b3 ^2 - b1) mod b2 = 0;

:: INT_5:th 9
theorem
for b1 being integer set
for b2 being natural set
      st b1 gcd b2 = 1
   holds b1 ^2 is_quadratic_residue_mod b2;

:: INT_5:th 10
theorem
1 is_quadratic_residue_mod 2;

:: INT_5:th 11
theorem
for b1, b2 being integer set
for b3 being natural set
      st b1 gcd b3 = 1 & b1 is_quadratic_residue_mod b3 & b1,b2 are_congruent_mod b3
   holds b2 is_quadratic_residue_mod b3;

:: INT_5:th 12
theorem
for b1, b2 being integer set
      st b1 divides b2
   holds b1 gcd b2 = abs b1;

:: INT_5:funcreg 2
registration
  let a1 be integer set;
  let a2 be natural set;
  cluster a1 |^ a2 -> integer;
end;

:: INT_5:th 13
theorem
for b1 being natural set
for b2, b3, b4 being integer set
      st b2 mod b4 = b3 mod b4
   holds (b2 |^ b1) mod b4 = (b3 |^ b1) mod b4;

:: INT_5:th 14
theorem
for b1, b2 being integer set
for b3 being natural prime set
      st b1 gcd b3 = 1 & (b2 ^2 - b1) mod b3 = 0
   holds b2,b3 are_relative_prime;

:: INT_5:th 15
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1 & b1 is_quadratic_residue_mod b2
   holds ex b3, b4 being integer set st
      (b3 ^2 - b1) mod b2 = 0 & (b4 ^2 - b1) mod b2 = 0 & not b3,b4 are_congruent_mod b2;

:: INT_5:funcreg 3
registration
  let a1 be FinSequence of NAT;
  let a2 be natural set;
  cluster a1 . a2 -> natural;
end;

:: INT_5:th 16
theorem
for b1 being natural prime set
      st 2 < b1
   holds ex b2 being FinSequence of NAT st
      len b2 = (b1 -' 1) div 2 &
       (for b3 being natural set
             st b3 in dom b2
          holds (b2 . b3) hcf b1 = 1) &
       (for b3 being natural set
             st b3 in dom b2
          holds b2 . b3 is_quadratic_residue_mod b1) &
       (for b3, b4 being natural set
             st b3 in dom b2 & b4 in dom b2 & b3 <> b4
          holds not b2 . b3,b2 . b4 are_congruent_mod b1);

:: INT_5:th 17
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1 & b1 is_quadratic_residue_mod b2
   holds (b1 |^ ((b2 -' 1) div 2)) mod b2 = 1;

:: INT_5:th 18
theorem
for b1 being natural prime set
for b2 being natural set
      st 2 < b1 & b2 gcd b1 = 1 & not b2 is_quadratic_residue_mod b1
   holds (b2 |^ ((b1 -' 1) div 2)) mod b1 = b1 - 1;

:: INT_5:th 19
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1 & not b1 is_quadratic_residue_mod b2
   holds (b1 |^ ((b2 -' 1) div 2)) mod b2 = b2 - 1;

:: INT_5:th 20
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1 & b1 is_quadratic_residue_mod b2
   holds ((b1 |^ ((b2 -' 1) div 2)) - 1) mod b2 = 0;

:: INT_5:th 21
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1 & not b1 is_quadratic_residue_mod b2
   holds ((b1 |^ ((b2 -' 1) div 2)) + 1) mod b2 = 0;

:: INT_5:th 22
theorem
for b1 being integer set
for b2 being natural prime set
for b3 being integer set
      st 2 < b2 & b1 gcd b2 = 1 & b3 gcd b2 = 1 & b1 is_quadratic_residue_mod b2 & b3 is_quadratic_residue_mod b2
   holds b1 * b3 is_quadratic_residue_mod b2;

:: INT_5:th 23
theorem
for b1 being integer set
for b2 being natural prime set
for b3 being integer set
      st 2 < b2 & b1 gcd b2 = 1 & b3 gcd b2 = 1 & b1 is_quadratic_residue_mod b2 & not b3 is_quadratic_residue_mod b2
   holds not b1 * b3 is_quadratic_residue_mod b2;

:: INT_5:th 24
theorem
for b1 being integer set
for b2 being natural prime set
for b3 being integer set
      st 2 < b2 & b1 gcd b2 = 1 & b3 gcd b2 = 1 & not b1 is_quadratic_residue_mod b2 & not b3 is_quadratic_residue_mod b2
   holds b1 * b3 is_quadratic_residue_mod b2;

:: INT_5:funcnot 2 => INT_5:func 2
definition
  let a1 be integer set;
  let a2 be natural prime set;
  func Lege(A1,A2) -> integer set equals
    1
    if a1 is_quadratic_residue_mod a2
    otherwise   case not a1 is_quadratic_residue_mod a2;
    thus - 1;
  end;
;
end;

:: INT_5:def 3
theorem
for b1 being integer set
for b2 being natural prime set holds
   (b1 is_quadratic_residue_mod b2 implies Lege(b1,b2) = 1) & (b1 is_quadratic_residue_mod b2 or Lege(b1,b2) = - 1);

:: INT_5:th 25
theorem
for b1 being integer set
for b2 being natural prime set
      st Lege(b1,b2) <> 1
   holds Lege(b1,b2) = - 1;

:: INT_5:th 26
theorem
for b1 being integer set
for b2 being natural prime set
      st b1 gcd b2 = 1
   holds Lege(b1 ^2,b2) = 1;

:: INT_5:th 27
theorem
for b1 being natural prime set holds
   Lege(1,b1) = 1;

:: INT_5:th 28
theorem
for b1 being integer set
for b2 being natural prime set
      st 2 < b2 & b1 gcd b2 = 1
   holds Lege(b1,b2),b1 |^ ((b2 -' 1) div 2) are_congruent_mod b2;

:: INT_5:th 29
theorem
for b1 being integer set
for b2 being natural prime set
for b3 being integer set
      st 2 < b2 & b1 gcd b2 = 1 & b1,b3 are_congruent_mod b2
   holds Lege(b1,b2) = Lege(b3,b2);

:: INT_5:th 30
theorem
for b1 being integer set
for b2 being natural prime set
for b3 being integer set
      st 2 < b2 & b1 gcd b2 = 1 & b3 gcd b2 = 1
   holds Lege(b1 * b3,b2) = (Lege(b1,b2)) * Lege(b3,b2);

:: INT_5:th 31
theorem
for b1 being FinSequence of INT
      st (for b2 being natural set
               st b2 in dom b1 & b1 . b2 <> 1
            holds b1 . b2 = - 1) &
         Product b1 <> 1
   holds Product b1 = - 1;

:: INT_5:th 32
theorem
for b1 being integer set
for b2, b3 being FinSequence of INT
      st len b2 = len b3 &
         (for b4 being natural set
               st b4 in dom b2
            holds b2 . b4,b3 . b4 are_congruent_mod b1)
   holds Product b2,Product b3 are_congruent_mod b1;

:: INT_5:th 33
theorem
for b1 being integer set
for b2, b3 being FinSequence of INT
      st len b2 = len b3 &
         (for b4 being natural set
               st b4 in dom b2
            holds b2 . b4,- (b3 . b4) are_congruent_mod b1)
   holds Product b2,((- 1) |^ len b2) * Product b3 are_congruent_mod b1;

:: INT_5:th 34
theorem
for b1 being natural prime set
for b2 being FinSequence of NAT
      st 2 < b1 &
         (for b3 being natural set
               st b3 in dom b2
            holds (b2 . b3) hcf b1 = 1)
   holds ex b3 being FinSequence of INT st
      len b3 = len b2 &
       (for b4 being natural set
             st b4 in dom b3
          holds b3 . b4 = Lege(b2 . b4,b1)) &
       Lege(Product b2,b1) = Product b3;

:: INT_5:th 35
theorem
for b1, b2 being natural set
for b3 being natural prime set
      st 2 < b3 & b1 hcf b3 = 1 & b2 hcf b3 = 1
   holds Lege(b1 ^2 * b2,b3) = Lege(b2,b3);

:: INT_5:th 36
theorem
for b1 being natural prime set
      st 2 < b1
   holds Lege(- 1,b1) = (- 1) |^ ((b1 -' 1) div 2);

:: INT_5:th 37
theorem
for b1 being natural prime set
      st 2 < b1 & b1 mod 4 = 1
   holds - 1 is_quadratic_residue_mod b1;

:: INT_5:th 38
theorem
for b1 being natural prime set
      st 2 < b1 & b1 mod 4 = 3
   holds not - 1 is_quadratic_residue_mod b1;

:: INT_5:th 39
theorem
for b1 being non empty set
for b2 being FinSequence of b1
for b3, b4 being natural set holds
   b2 is one-to-one
iff
   Swap(b2,b3,b4) is one-to-one;

:: INT_5:th 40
theorem
for b1 being natural set
for b2 being FinSequence of NAT
      st len b2 = b1 &
         (for b3 being natural set
               st b3 in dom b2
            holds 0 < b2 . b3 & b2 . b3 <= b1) &
         b2 is one-to-one
   holds rng b2 = Seg b1;

:: INT_5:th 41
theorem
for b1 being natural prime set
for b2, b3 being natural set
for b4 being FinSequence of NAT
      st 2 < b1 &
         b2 hcf b1 = 1 &
         b4 = b2 * idseq ((b1 -' 1) div 2) &
         b3 = Card {b5 where b5 is Element of NAT: b5 in rng (b4 mod b1) & b1 / 2 < b5}
   holds Lege(b2,b1) = (- 1) |^ b3;

:: INT_5:th 42
theorem
for b1 being natural prime set
      st 2 < b1
   holds Lege(2,b1) = (- 1) |^ ((b1 ^2 -' 1) div 8);

:: INT_5:th 43
theorem
for b1 being natural prime set
      st 2 < b1 &
         (b1 mod 8 = 1 or b1 mod 8 = 7)
   holds 2 is_quadratic_residue_mod b1;

:: INT_5:th 44
theorem
for b1 being natural prime set
      st 2 < b1 &
         (b1 mod 8 = 3 or b1 mod 8 = 5)
   holds not 2 is_quadratic_residue_mod b1;

:: INT_5:th 45
theorem
for b1, b2 being natural set
      st b1 mod 2 = b2 mod 2
   holds (- 1) |^ b1 = (- 1) |^ b2;

:: INT_5:th 46
theorem
for b1, b2, b3, b4 being FinSequence of REAL
      st len b1 = len b2 & len b3 = len b4
   holds (b1 ^ b3) - (b2 ^ b4) = (b1 - b2) ^ (b3 - b4);

:: INT_5:th 47
theorem
for b1 being FinSequence of REAL
for b2 being Element of REAL holds
   Sum (((len b1) |-> b2) - b1) = ((len b1) * b2) - Sum b1;

:: INT_5:funcnot 3 => INT_5:func 3
definition
  let a1 be finite set;
  let a2 be FinSequence of bool a1;
  redefine func Card a2 -> Cardinal-yielding FinSequence of NAT;
end;

:: INT_5:th 48
theorem
for b1 being natural set
for b2 being finite set
for b3 being FinSequence of bool b2
      st len b3 = b1 &
         (for b4, b5 being natural set
               st b4 in dom b3 & b5 in dom b3 & b4 <> b5
            holds b3 . b4 misses b3 . b5)
   holds Card union rng b3 = Sum Card b3;

:: INT_5:th 49
theorem
for b1, b2 being natural prime set
      st 2 < b1 & 2 < b2 & b1 <> b2
   holds (Lege(b1,b2)) * Lege(b2,b1) = (- 1) |^ (((b1 -' 1) div 2) * ((b2 -' 1) div 2));

:: INT_5:th 50
theorem
for b1, b2 being natural prime set
      st 2 < b1 & 2 < b2 & b1 <> b2 & b1 mod 4 = 3 & b2 mod 4 = 3
   holds Lege(b1,b2) = - Lege(b2,b1);

:: INT_5:th 51
theorem
for b1, b2 being natural prime set
      st 2 < b1 &
         2 < b2 &
         b1 <> b2 &
         (b1 mod 4 = 1 or b2 mod 4 = 1)
   holds Lege(b1,b2) = Lege(b2,b1);