@@ -1405,8 +1405,7 @@ end
1405
1405
The decreasing sequence of submodules consisting of the ranges of the iterates of a linear map.
1406
1406
-/
1407
1407
@[simps]
1408
- def iterate_range {R M} [ring R] [add_comm_group M] [module R M] (f : M →ₗ[R] M) :
1409
- ℕ →ₘ order_dual (submodule R M) :=
1408
+ def iterate_range (f : M →ₗ[R] M) : ℕ →ₘ order_dual (submodule R M) :=
1410
1409
⟨λ n, (f ^ n).range, λ n m w x h, begin
1411
1410
obtain ⟨c, rfl⟩ := le_iff_exists_add.mp w,
1412
1411
rw linear_map.mem_range at h,
@@ -1547,8 +1546,7 @@ end
1547
1546
The increasing sequence of submodules consisting of the kernels of the iterates of a linear map.
1548
1547
-/
1549
1548
@[simps]
1550
- def iterate_ker {R M} [ring R] [add_comm_group M] [module R M] (f : M →ₗ[R] M) :
1551
- ℕ →ₘ submodule R M :=
1549
+ def iterate_ker (f : M →ₗ[R] M) : ℕ →ₘ submodule R M :=
1552
1550
⟨λ n, (f ^ n).ker, λ n m w x h, begin
1553
1551
obtain ⟨c, rfl⟩ := le_iff_exists_add.mp w,
1554
1552
rw linear_map.mem_ker at h,
@@ -1738,39 +1736,32 @@ by rw [of_le, ker_cod_restrict, ker_subtype]
1738
1736
lemma range_of_le (p q : submodule R M) (h : p ≤ q) : (of_le h).range = comap q.subtype p :=
1739
1737
by rw [← map_top, of_le, linear_map.map_cod_restrict, map_top, range_subtype]
1740
1738
1741
- end add_comm_monoid
1742
-
1743
- section ring
1744
-
1745
- variables [ring R] [ring R₂] [add_comm_group M] [add_comm_group M₂] [module R M] [module R₂ M₂]
1746
- variables (p p' : submodule R M) (q : submodule R₂ M₂)
1747
- variables {τ₁₂ : R →+* R₂}
1748
-
1749
- open linear_map
1750
-
1751
1739
lemma disjoint_iff_comap_eq_bot {p q : submodule R M} :
1752
1740
disjoint p q ↔ comap p.subtype q = ⊥ :=
1753
- by rw [eq_bot_iff, ← map_le_map_iff' p.ker_subtype, map_bot, map_comap_subtype, disjoint]
1741
+ by rw [←(map_injective_of_injective (show injective p.subtype, from subtype.coe_injective)).eq_iff,
1742
+ map_comap_subtype, map_bot, disjoint_iff]
1754
1743
1755
1744
/-- If `N ⊆ M` then submodules of `N` are the same as submodules of `M` contained in `N` -/
1756
- def map_subtype.rel_iso :
1757
- submodule R p ≃o {p' : submodule R M // p' ≤ p} :=
1745
+ def map_subtype.rel_iso : submodule R p ≃o {p' : submodule R M // p' ≤ p} :=
1758
1746
{ to_fun := λ p', ⟨map p.subtype p', map_subtype_le p _⟩,
1759
1747
inv_fun := λ q, comap p.subtype q,
1760
- left_inv := λ p', comap_map_eq_self $ by simp ,
1748
+ left_inv := λ p', comap_map_eq_of_injective subtype.coe_injective p' ,
1761
1749
right_inv := λ ⟨q, hq⟩, subtype.ext_val $ by simp [map_comap_subtype p, inf_of_le_right hq],
1762
- map_rel_iff' := λ p₁ p₂, map_le_map_iff' (ker_subtype p) }
1750
+ map_rel_iff' := λ p₁ p₂, subtype.coe_le_coe.symm.trans begin
1751
+ dsimp,
1752
+ rw [map_le_iff_le_comap,
1753
+ comap_map_eq_of_injective (show injective p.subtype, from subtype.coe_injective) p₂],
1754
+ end }
1763
1755
1764
1756
/-- If `p ⊆ M` is a submodule, the ordering of submodules of `p` is embedded in the ordering of
1765
1757
submodules of `M`. -/
1766
- def map_subtype.order_embedding :
1767
- submodule R p ↪o submodule R M :=
1758
+ def map_subtype.order_embedding : submodule R p ↪o submodule R M :=
1768
1759
(rel_iso.to_rel_embedding $ map_subtype.rel_iso p).trans (subtype.rel_embedding _ _)
1769
1760
1770
1761
@[simp] lemma map_subtype_embedding_eq (p' : submodule R p) :
1771
1762
map_subtype.order_embedding p p' = map p.subtype p' := rfl
1772
1763
1773
- end ring
1764
+ end add_comm_monoid
1774
1765
1775
1766
end submodule
1776
1767
@@ -2387,9 +2378,9 @@ end submodule
2387
2378
2388
2379
namespace submodule
2389
2380
2390
- variables [comm_ring R] [comm_ring R₂]
2391
- variables [add_comm_group M] [add_comm_group M₂] [module R M] [module R₂ M₂]
2392
- variables [add_comm_group N] [add_comm_group N₂] [module R N] [module R N₂]
2381
+ variables [comm_semiring R] [comm_semiring R₂]
2382
+ variables [add_comm_monoid M] [add_comm_monoid M₂] [module R M] [module R₂ M₂]
2383
+ variables [add_comm_monoid N] [add_comm_monoid N₂] [module R N] [module R N₂]
2393
2384
variables {τ₁₂ : R →+* R₂} {τ₂₁ : R₂ →+* R}
2394
2385
variables [ring_hom_inv_pair τ₁₂ τ₂₁] [ring_hom_inv_pair τ₂₁ τ₁₂]
2395
2386
variables (p : submodule R M) (q : submodule R₂ M₂)
0 commit comments