 reserve x,y,z for object,
   i,j,k,l,n,m for Nat,
   D,E for non empty set;
 reserve M for Matrix of D;
 reserve L for Matrix of E;
 reserve k,t,i,j,m,n for Nat,
   D for non empty set;
 reserve V for free Z_Module;
 reserve a for Element of INT.Ring,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve V for finite-rank free Z_Module,
   W for Element of V;
 reserve KL1,KL2,KL3 for Linear_Combination of V,
   X for Subset of V;
 reserve s for FinSequence,
   V1,V2,V3 for finite-rank free Z_Module,
   f,f1,f2 for Function of V1,V2,
   g for Function of V2,V3,
   b1 for OrdBasis of V1,
   b2 for OrdBasis of V2,
   b3 for OrdBasis of V3,
   v1,v2 for Vector of V2,
   v,w for Element of V1;
 reserve p2,F for FinSequence of V1,
   p1,d for FinSequence of INT.Ring,
   KL for Linear_Combination of V1;

theorem ThSign1:
  for V being finite-rank free Z_Module, b1, b2 being OrdBasis of V,
  M being Matrix of rank(V),INT.Ring st M = AutMt(id(V), b1, b2)
  holds |. Det M .| = 1
  proof
    let V be finite-rank free Z_Module, b1, b2 be OrdBasis of V,
    M be Matrix of rank(V),INT.Ring;
    assume AS1: M = AutMt(id(V), b1, b2);
    per cases;
    suppose rank(V) = 0;
      then Det M = 1.INT.Ring by MATRIXR2:41;
      hence thesis by ABSVALUE:def 1;
    end;
    suppose AS2: rank(V) > 0; then
      as2: rank V >= 1+0 by NAT_1:13;
      B0: len b1 = rank(V) by ThRank1;
      B1: len AutMt(id(V), b2, b1) = len b2 by Def8
      .= rank(V) by ThRank1;
      len b2 = rank(V) by ThRank1;
      then width AutMt(id(V), b2, b1) = len b1 by AS2,Th39;
      then reconsider M2 = AutMt(id(V), b2, b1) as Matrix of rank(V),INT.Ring
        by AS2,B0,B1,MATRIX_0:20;
      M = AutMt(id(V), b1, b2) by AS1; then
      A1: M * M2 = 1.(INT.Ring,rank(V)) by AS2,LmSign3;
      reconsider MM2 = M*M2 as Matrix of rank(V),INT.Ring;
  A2: (Det M) * (Det M2) = Det (MM2) by MATRIX11:62,AS2
      .= 1_INT.Ring by A1,MATRIX_7:16,as2
      .= 1.INT.Ring;
      reconsider i = Det M as Integer;
      reconsider j = Det M2 as Integer;
      i * j = 1 by A2;
      then i = 1 & j = 1 or i = -1 & j = -1 by INT_1:9;
      then |. i .| = 1 or |. i .| = -(-1) by ABSVALUE:def 1;
      hence thesis;
    end;
  end;
