reserve i for Nat, x,y for set;
reserve S for non empty non void ManySortedSign;
reserve X for non-empty ManySortedSet of S;

theorem
  for S being (4,1) integer bool-correct non empty non void BoolSignature
  for A being (4,1) integer bool-correct non-empty MSAlgebra over S
  for I being integer SortSymbol of S holds
  (the Sorts of A).I = INT & \0(A,I) = 0 & \1(A,I) = 1 &
  for i,j being Integer,a,b being Element of (the Sorts of A).I
  st a = i & b = j
  holds -a = -i & a+b = i+j & a*b = i*j & (j <> 0 implies a div b = i div j) &
  leq(a,b) = IFGT(i,j,FALSE,TRUE) &
  (leq(a,b) = TRUE iff i <= j) & (leq(a,b) = FALSE iff i > j)
  proof
    let S be (4,1) integer bool-correct non empty non void BoolSignature;
    let A be (4,1) integer bool-correct non-empty MSAlgebra over S;
    let I be integer SortSymbol of S;
    set n = 4;
    consider J being SortSymbol of S such that
A1: J = 1 &
    (the connectives of S).n is_of_type {},J & (the Sorts of A).J = INT &
    Den(In((the connectives of S).n, the carrier' of S), A).{} = 0 &
    Den(In((the connectives of S).(n+1), the carrier' of S), A).{} = 1 &
    for i,j being Integer holds
    Den(In((the connectives of S).(n+2), the carrier' of S), A).<*i*> = -i &
    Den(In((the connectives of S).(n+3), the carrier' of S), A).<*i,j*> = i+j &
    Den(In((the connectives of S).(n+4), the carrier' of S), A).<*i,j*> = i*j &
    (j <> 0 implies
    Den(In((the connectives of S).(n+5), the carrier' of S), A).<*i,j*>
    = i div j) &
    Den(In((the connectives of S).(n+6), the carrier' of S), A).<*i,j*>
    = IFGT(i,j,FALSE,TRUE) by Def49;
    thus (the Sorts of A).I = INT by A1,Def39;
    thus \0(A,I) = 0 by A1;
    thus \1(A,I) = 1 by A1;
    let i,j be Integer;
    let a,b be Element of (the Sorts of A).I;
    assume A2: a = i;
    assume A3: b = j;
    thus -a = -i by A1,A2;
    thus a+b = i+j by A1,A2,A3;
    thus a*b = i*j by A1,A2,A3;
    thus j <> 0 implies a div b = i div j by A1,A2,A3;
    thus
A4: leq(a,b) = IFGT(i,j,FALSE,TRUE) by A1,A2,A3;
    thus (leq(a,b) = TRUE iff i <= j) by A4,XXREAL_0:def 11;
    thus leq(a,b) = FALSE implies i > j by A4,XXREAL_0:def 11;
    assume i > j;
    hence leq(a,b) = FALSE by A4,XXREAL_0:def 11;
  end;
