This repository was archived by the owner on Jul 24, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -51,7 +51,6 @@ https://en.wikipedia.org/wiki/Projective_module
51
51
52
52
- Direct sum of two projective modules is projective.
53
53
- Arbitrary sum of projective modules is projective.
54
- - Any module admits a surjection from a projective module.
55
54
56
55
All of these should be relatively straightforward.
57
56
Original file line number Diff line number Diff line change @@ -433,6 +433,22 @@ theorem total_unique [unique α] (l : α →₀ R) (v) :
433
433
finsupp.total α M R v l = l (default α) • v (default α) :=
434
434
by rw [← total_single, ← unique_single l]
435
435
436
+ lemma total_surjective (h : function.surjective v) : function.surjective (finsupp.total α M R v) :=
437
+ begin
438
+ intro x,
439
+ obtain ⟨y, hy⟩ := h x,
440
+ exact ⟨finsupp.single y 1 , by simp [hy]⟩
441
+ end
442
+
443
+ theorem total_range (h : function.surjective v) : (finsupp.total α M R v).range = ⊤ :=
444
+ range_eq_top.2 $ total_surjective R h
445
+
446
+ /-- Any module is a quotient of a free module. This is stated as surjectivity of
447
+ `finsupp.total M M R id : (M →₀ R) →ₗ[R] M`. -/
448
+ lemma total_id_surjective (M) [add_comm_monoid M] [module R M] :
449
+ function.surjective (finsupp.total M M R id) :=
450
+ total_surjective R function.surjective_id
451
+
436
452
lemma range_total : (finsupp.total α M R v).range = span R (range v) :=
437
453
begin
438
454
ext x,
Original file line number Diff line number Diff line change @@ -15,6 +15,8 @@ import logic.small
15
15
We introduce a class `module.free R M`, for `R` a `semiring` and `M` an `R`-module and we provide
16
16
several basic instances for this class.
17
17
18
+ Use `finsupp.total_id_surjective` to prove that any module is the quotient of a free module.
19
+
18
20
## Main definition
19
21
20
22
* `module.free R M` : the class of free `R`-modules.
You can’t perform that action at this time.
0 commit comments