
theorem ThDLDB:
  for L being RATional positive-definite Z_Lattice,
      I being Basis of EMLat(L) holds
  DualBasis(I) is Basis of DualLat(L)
  proof
    let L be RATional positive-definite Z_Lattice,
    I be Basis of EMLat(L);
    reconsider DL = DualLat(L) as Submodule of DivisibleMod(L) by ThDL2;
    for v being Vector of DivisibleMod(L) st v in DualBasis(I)
    holds v in the carrier of DualLat(L)
    proof
      let v be Vector of DivisibleMod(L) such that
      B1: v in DualBasis(I);
      v in DualLat(L) by B1,ThDB2,ThDL1;
      hence thesis;
    end;
    then DualBasis(I) c= the carrier of DualLat(L);
    then reconsider DB = DualBasis(I)
    as linearly-independent Subset of DL by ZMODUL03:16;
    A2: for v being Vector of DivisibleMod(L) st v in the ModuleStr of DL
    holds v in Lin DualBasis(I)
    proof
      let v be Vector of DivisibleMod(L) such that
      B1: v in the ModuleStr of DL;
      v in DualLat(L) by B1;
      hence thesis by ThDE3,ThDL1;
    end;
    A3: for v being Vector of DivisibleMod(L) st v in Lin DualBasis(I)
    holds v in the ModuleStr of DL
    proof
      let v be Vector of DivisibleMod(L) such that
      B1: v in Lin DualBasis(I);
      consider l be Linear_Combination of DualBasis(I) such that
      B2: v = Sum(l) by B1,VECTSP_7:7;
      reconsider J = I as Basis of EMbedding(L) by ThELEM1;
      for u being Vector of DivisibleMod(L) st u in J
      holds (ScProductDM(L)).(v, u) in INT.Ring
      proof
        let u be Vector of DivisibleMod(L) such that
        C1: u in J;
        C2: (ScProductDM(L)).(u, v) = l.((B2DB(I)).u) by B2,C1,LmDE32;
        u in dom(B2DB(I)) by C1,defB2DB;
        then (B2DB(I)).u in rng(B2DB(I)) by FUNCT_1:3;
        then (B2DB(I)).u in DualBasis(I);
        then l.((B2DB(I)).u) in the carrier of INT.Ring by FUNCT_2:5;
        hence thesis by C2,ZMODLAT2:6;
      end;
      then v in DL by LmDE21,ThDL1;
      hence thesis;
    end;
    (Omega).DL is Submodule of DL;
    then the ModuleStr of DL is Submodule of DivisibleMod(L) by ZMODUL01:42;
    then the ModuleStr of DualLat(L) = Lin DualBasis(I) by A2,A3,ZMODUL01:46
    .= Lin DB by ZMODUL03:20;
    hence thesis by VECTSP_7:def 3;
  end;
