Journal of Formalized Mathematics
Volume 4, 1992
University of Bialystok
Copyright (c) 1992 Association of Mizar Users

The abstract of the Mizar article:

Submodules

by
Michal Muzalewski

Received June 19, 1992

MML identifier: LMOD_6
[ Mizar article, MML identifier index ]


environ

 vocabulary FUNCSDOM, VECTSP_1, VECTSP_2, RLVECT_2, RLSUB_2, RMOD_3, FUNCT_1,
      RLSUB_1, RELAT_1, RLVECT_1, REALSET1, QC_LANG1, SUBSET_1, RLVECT_3,
      BOOLE, PARTFUN1, ARYTM_1;
 notation TARSKI, XBOOLE_0, ZFMISC_1, SUBSET_1, RELAT_1, BINOP_1, REALSET1,
      RLVECT_1, STRUCT_0, VECTSP_1, FUNCSDOM, VECTSP_2, VECTSP_4, VECTSP_5,
      VECTSP_6, MOD_3, PRE_TOPC;
 constructors BINOP_1, DOMAIN_1, REALSET1, VECTSP_5, VECTSP_6, MOD_3, PRE_TOPC,
      VECTSP_2, MEMBERED, XBOOLE_0;
 clusters VECTSP_1, VECTSP_2, VECTSP_4, STRUCT_0, RELSET_1, MEMBERED, ZFMISC_1,
      XBOOLE_0;
 requirements SUBSET, BOOLE;


begin

 reserve x for set,
         K for Ring,
         r for Scalar of K,
         V, M, M1, M2, N for LeftMod of K,
         a for Vector of V,
         m, m1, m2 for Vector of M,
         n, n1, n2 for Vector of N,
         A for Subset of V,
         l for Linear_Combination of A,
         W, W1, W2, W3 for Subspace of V;

 definition let K, V;
  redefine func Subspaces(V);
  synonym Submodules(V);
 end;

theorem :: LMOD_6:1
  M1 = the VectSpStr of M2 implies (x in M1 iff x in M2);

theorem :: LMOD_6:2
  for v being Vector of the VectSpStr of V st a=v holds r*a = r*v;

theorem :: LMOD_6:3
 the VectSpStr of V is strict Subspace of V;

theorem :: LMOD_6:4
 V is Subspace of (Omega).V;

begin

definition let K;
redefine canceled;

attr K is trivial means
:: LMOD_6:def 2

 0.K = 1_ K;
end;

theorem :: LMOD_6:5
 K is trivial implies (for r holds r = 0.K) & (for a holds a = 0.V);

theorem :: LMOD_6:6
   K is trivial implies V is trivial;

theorem :: LMOD_6:7
   V is trivial iff the VectSpStr of V = (0).V;

begin             ::
                  ::   1. Submodules and subsets
                  ::

definition let K,V; let W be strict Subspace of V;
 func @W -> Element of Submodules(V) equals
:: LMOD_6:def 3
W;
end;

canceled;

theorem :: LMOD_6:9
 for A being Subset of W holds A is Subset of V;

definition let K,V,W; let A be Subset of W;
 canceled;

 func @A -> Subset of V equals
:: LMOD_6:def 5
   A;
end;

definition let K,V,W; let A be non empty Subset of W;
 cluster @A -> non empty;
end;

theorem :: LMOD_6:10
 x in [#]V iff x in V;

theorem :: LMOD_6:11
   x in @[#]W iff x in W;

theorem :: LMOD_6:12
 A c= [#]Lin(A);

theorem :: LMOD_6:13
 A<>{} & A is lineary-closed implies Sum(l) in A;

canceled;

theorem :: LMOD_6:15
   0.V in A & A is lineary-closed implies A = [#]Lin(A);


begin             ::
                  ::   2. Cyclic submodule
                  ::

definition let K,V,a;
 redefine func {a} -> Subset of V;
end;

definition let K,V,a;
  func <:a:> -> strict Subspace of V equals
:: LMOD_6:def 6
Lin({a});
end;

begin              ::
                   ::  3. Inclusion of left R-modules
                   ::

definition let K,M,N;
  pred M c= N means
:: LMOD_6:def 7
 M is Subspace of N;
  reflexivity;
end;

theorem :: LMOD_6:16
M c= N implies
  (x in M implies x in N) & (x is Vector of M implies x is Vector of N);

theorem :: LMOD_6:17
  M c= N implies
   0.M = 0.N
 & (m1 = n1 & m2 = n2 implies m1 + m2 = n1 + n2)
 & (m = n implies r * m = r * n)
 & (m = n implies - n = - m)
 & (m1 = n1 & m2 = n2 implies m1 - m2 = n1 - n2)
 & 0.N in M
 & 0.M in N
 & (n1 in M & n2 in M implies n1 + n2 in M)
 & (n in M implies r * n in M)
 & (n in M implies - n in M)
 & (n1 in M & n2 in M implies n1 - n2 in M);

theorem :: LMOD_6:18
   M1 c= N & M2 c= N implies
    0.M1 = 0.M2
  & 0.M1 in M2
  & (the carrier of M1 c= the carrier of M2
   implies M1 c= M2)
  & ((for n st n in M1 holds n in M2) implies M1 c= M2)
  & (the carrier of M1 = the carrier of M2
    & M1 is strict & M2 is strict implies M1 = M2)
  & (0).M1 c= M2;

canceled 2;

theorem :: LMOD_6:21
  for V,M being strict LeftMod of K
  holds V c= M & M c= V implies V = M;

theorem :: LMOD_6:22
   V c= M & M c= N implies V c= N;

theorem :: LMOD_6:23
   M c= N implies (0).M c= N;

theorem :: LMOD_6:24
   M c= N implies (0).N c= M;

theorem :: LMOD_6:25
   M c= N implies M c= (Omega).N;

theorem :: LMOD_6:26
   W1 c= W1 + W2 & W2 c= W1 + W2;

theorem :: LMOD_6:27
   W1 /\ W2 c= W1 & W1 /\ W2 c= W2;

theorem :: LMOD_6:28
   W1 c= W2 implies W1 /\ W3 c= W2 /\ W3;

theorem :: LMOD_6:29
   W1 c= W3 implies W1 /\ W2 c= W3;

theorem :: LMOD_6:30
   W1 c= W2 & W1 c= W3 implies W1 c= W2 /\ W3;

theorem :: LMOD_6:31
   W1 /\ W2 c= W1 + W2;

theorem :: LMOD_6:32
   (W1 /\ W2) + (W2 /\ W3) c= W2 /\ (W1 + W3);

theorem :: LMOD_6:33
   W1 c= W2 implies W2 /\ (W1 + W3) = (W1 /\ W2) + (W2 /\ W3);

theorem :: LMOD_6:34
   W2 + (W1 /\ W3) c= (W1 + W2) /\ (W2 + W3);

theorem :: LMOD_6:35
   W1 c= W2 implies W2 + (W1 /\ W3) = (W1 + W2) /\ (W2 + W3);

theorem :: LMOD_6:36
   W1 c= W2 implies W1 c= W2 + W3;

theorem :: LMOD_6:37
   W1 c= W3 & W2 c= W3 implies W1 + W2 c= W3;

theorem :: LMOD_6:38
   for A,B being Subset of V st A c= B holds Lin(A) c= Lin(B);

theorem :: LMOD_6:39
   for A,B being Subset of V holds Lin(A /\ B) c= Lin(A) /\ Lin(B);

theorem :: LMOD_6:40
 M1 c= M2 implies [#]M1 c= [#]M2;

theorem :: LMOD_6:41
 W1 c= W2 iff for a st a in W1 holds a in W2;

theorem :: LMOD_6:42
 W1 c= W2 iff [#]W1 c= [#]W2;

theorem :: LMOD_6:43
   W1 c= W2 iff @[#]W1 c= @[#]W2;

theorem :: LMOD_6:44
   (0).W c= V & (0).V c= W & (0).W1 c= W2;

Back to top