Definition generated_module : submodule Mod := coKer (FMd_lift (inj_part A)).

(* Specifications: *)
Lemma generated_module_minimal : forall (R : RING) (Mod : MODULE R) (A : part_set Mod) (H : submodule Mod), included A H -> included (generated_module A) H.
Lemma generated_module_prop_included : forall (R : RING) (Mod : MODULE R) (A : part_set Mod), included A (generated_module A).
Lemma generated_module_prop : forall (R : RING) (Mod : MODULE R) (A : part_set Mod) (y : Mod), in_part y (generated_module A) -> exists x : FMd R A, Equal y (FMd_lift (inj_part A) x).
Lemma generated_module_prop_rev : forall (R : RING) (Mod : MODULE R) (A : part_set Mod) (y : Mod), (exists x : FMd R A, Equal y (FMd_lift (inj_part A) x)) -> in_part y (generated_module A).