 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 LmSign31X:
  for V1 being finite-rank free Z_Module,
  b1 being OrdBasis of V1 holds
  for i,j be Nat
  st i in dom b1 & j in dom b1 holds
  ( i = j implies ((b1/.i) |-- b1).j = 1 )
  & ( i <> j implies ((b1/.i) |-- b1).j = 0 )
  proof
    let V1 be finite-rank free Z_Module,
    b1 be OrdBasis of V1;
    let i, j be Nat;
    assume that
    A5: i in dom b1 and
    A18: j in dom b1;
    set bb= (b1/.i) |-- b1;
    consider KL be Linear_Combination of V1 such that
    A1: b1/.i = Sum(KL) & Carrier KL c= rng b1 and
    A2: for k st 1<=k & k<=len bb holds bb/.k=KL.(b1/.k) by Def7;
    reconsider rb1=rng b1 as Basis of V1 by defOrdBasis;
    b1/.i in {b1/.i} by TARSKI:def 1;
    then b1/.i in Lin{b1/.i} by ZMODUL02:65;
    then consider Lb be Linear_Combination of {b1/.i} such that
    A4: b1/.i=Sum Lb by ZMODUL02:64;
    A6: b1.i=b1/.i by A5,PARTFUN1:def 6; then
    A7: Carrier Lb c= {b1.i} by VECTSP_6:def 4;
    A8: b1.i in rb1 by A5,FUNCT_1:def 3;
    then {b1.i}c= rb1 by ZFMISC_1:31;
    then Carrier Lb c= rb1 by A7; then
    A9: Lb = KL by A4,A1,Th5,VECTSP_7:def 3;
    A12: len b1=len bb by Def7;
    A13: b1/.i<>0.V1 by A6,A8,ZMODUL02:57,VECTSP_7:def 3;
    j in Seg len b1 by A18,FINSEQ_1:def 3; then
    A15: 1<=j & j<=len bb by FINSEQ_1:1,A12;
    A19: dom bb=dom b1 by A12,FINSEQ_3:29;
    set One = 1.INT.Ring;
    reconsider KLi = KL.(b1/.i) as Element of INT.Ring;
    now
      assume A20: i = j;
      KLi *(b1/.i) = b1/.i by A4,A9,ZMODUL02:21
      .= One *(b1/.i);
      then KLi = One by A13,ZMODUL01:11;
      hence 1 = bb/.j by A2,A15,A20
      .= bb.j by A18,A19,PARTFUN1:def 6;
    end;
    hence i = j implies ((b1/.i) |-- b1).j = 1;
    now
      assume
      A22: i <> j;
      b1 is one-to-one by defOrdBasis;
      then b1.i <> b1.j by A5,A18,A22; then
      A23: not b1.j in Carrier Lb by A7,TARSKI:def 1;
      b1.j = b1/.j by A18,PARTFUN1:def 6;
      hence 0 = KL.(b1/.j) by A9,A23
      .= bb/.j by A2,A15
      .= bb.j by A18,A19,PARTFUN1:def 6;
    end;
    hence i <> j implies ((b1/.i) |-- b1).j = 0;
  end;
