reserve m,n,s for non zero Element of NAT;

theorem Th12:
  for A be FinSequence of n-tuples_on BOOLEAN,
  B be finite Subset of n-BinaryVectSp
  st rng A = B & len A = n & A is one-to-one &
  (for i,j be Nat st i in Seg n & j in Seg n holds
  (i = j implies (A.i).j = TRUE) & (i <> j implies (A.i).j = FALSE))
  holds Lin B = ModuleStr(# the carrier of n-BinaryVectSp,
  the addF of n-BinaryVectSp, the ZeroF of n-BinaryVectSp,
  the lmult of n-BinaryVectSp #)
proof
  let A be FinSequence of n-tuples_on BOOLEAN,
  B be finite Subset of n-BinaryVectSp;
  assume that
A1: rng A = B and
A2: len A = n and
A3: A is one-to-one and
A4: for i,j be Nat st i in Seg n & j in Seg n
  holds (i = j implies (A.i).j = TRUE) & (i <> j implies (A.i).j = FALSE);
  set V = n-BinaryVectSp;
  for x be object holds x in the carrier of (Lin B) iff x in the carrier of V
  proof
    let x be object;
    hereby assume
A5:   x in the carrier of Lin B;
      the carrier of (Lin B) c= the carrier of V by VECTSP_4:def 2;
      hence x in the carrier of V by A5;
    end;
    assume x in the carrier of V;
    then reconsider v = x as Element of n-tuples_on BOOLEAN;
    consider l being Linear_Combination of B such that
A6: for j be Nat st j in Seg n holds v.j = l.(A.j) by Th11,A1,A2,A3;
    reconsider Suml = Sum l as Element of n-tuples_on BOOLEAN;
A7: len v = n by Lm1;
A8: len Suml = n by Lm1;
A9: dom v = Seg n by FINSEQ_1:def 3,A7
    .= dom Suml by FINSEQ_1:def 3,A8;
    for j be Nat st j in dom v holds v.j = Suml.j
    proof
      let j be Nat;
      assume j in dom v;
      then
A10:   j in Seg n by FINSEQ_1:def 3,A7;
      thus v.j = l.(A.j) by A6,A10
      .= Suml.j by Th9,A1,A2,A3,A4,A10;
    end;
    then x in Lin B by FINSEQ_1:13,A9,VECTSP_7:7;
    hence x in the carrier of (Lin B) by STRUCT_0:def 5;
  end;
  hence thesis by TARSKI:2,VECTSP_4:31;
end;
