@@ -793,15 +793,21 @@ protected theorem finite_dimensional (f : V ≃ₗ[K] V₂) [finite_dimensional
793
793
module.finite.equiv f
794
794
795
795
/-- The dimension of a finite dimensional space is preserved under linear equivalence. -/
796
- theorem finrank_eq (f : V ≃ₗ[K] V₂) [finite_dimensional K V] :
796
+ theorem finrank_eq (f : V ≃ₗ[K] V₂) :
797
797
finrank K V = finrank K V₂ :=
798
798
begin
799
- haveI : finite_dimensional K V₂ := f.finite_dimensional,
800
- simpa [← finrank_eq_dim] using f.lift_dim_eq
799
+ by_cases h : finite_dimensional K V,
800
+ { resetI,
801
+ haveI : finite_dimensional K V₂ := f.finite_dimensional,
802
+ simpa [← finrank_eq_dim] using f.lift_dim_eq },
803
+ { rw [finrank_of_infinite_dimensional h, finrank_of_infinite_dimensional],
804
+ contrapose! h,
805
+ resetI,
806
+ exact f.symm.finite_dimensional }
801
807
end
802
808
803
809
/-- Pushforwards of finite-dimensional submodules along a `linear_equiv` have the same finrank. -/
804
- lemma finrank_map_eq (f : V ≃ₗ[K] V₂) (p : submodule K V) [finite_dimensional K p] :
810
+ lemma finrank_map_eq (f : V ≃ₗ[K] V₂) (p : submodule K V) :
805
811
finrank K (p.map (f : V →ₗ[K] V₂)) = finrank K p :=
806
812
(f.submodule_map p).finrank_eq.symm
807
813
@@ -858,6 +864,11 @@ lemma eq_of_le_of_finrank_eq {S₁ S₂ : submodule K V} [finite_dimensional K S
858
864
(hd : finrank K S₁ = finrank K S₂) : S₁ = S₂ :=
859
865
eq_of_le_of_finrank_le hle hd.ge
860
866
867
+ @[simp]
868
+ lemma finrank_map_subtype_eq (p : subspace K V) (q : subspace K p) :
869
+ finite_dimensional.finrank K (q.map p.subtype) = finite_dimensional.finrank K q :=
870
+ (submodule.equiv_subtype_map p q).symm.finrank_eq
871
+
861
872
variables [finite_dimensional K V] [finite_dimensional K V₂]
862
873
863
874
/-- Given isomorphic subspaces `p q` of vector spaces `V` and `V₁` respectively,
@@ -881,11 +892,6 @@ begin
881
892
← linear_equiv.finrank_eq f, add_comm, submodule.finrank_quotient_add_finrank]
882
893
end
883
894
884
- @[simp]
885
- lemma finrank_map_subtype_eq (p : subspace K V) (q : subspace K p) :
886
- finite_dimensional.finrank K (q.map p.subtype) = finite_dimensional.finrank K q :=
887
- (submodule.equiv_subtype_map p q).symm.finrank_eq
888
-
889
895
end finite_dimensional
890
896
891
897
namespace linear_map
@@ -950,6 +956,11 @@ theorem finrank_range_add_finrank_ker [finite_dimensional K V] (f : V →ₗ[K]
950
956
finrank K f.range + finrank K f.ker = finrank K V :=
951
957
by { rw [← f.quot_ker_equiv_range.finrank_eq], exact submodule.finrank_quotient_add_finrank _ }
952
958
959
+ /-- The dimensions of the domain and range of an injective linear map are equal. -/
960
+ lemma finrank_range_of_inj {f : V →ₗ[K] V₂} (hf : function.injective f) :
961
+ finrank K f.range = finrank K V :=
962
+ by rw (linear_equiv.of_injective f hf).finrank_eq
963
+
953
964
end linear_map
954
965
955
966
namespace linear_equiv
0 commit comments